fix iseq kwargs table and original_iseq leaks

[bug #19903]

Co-authored-by: Peter Zhu <peter@peterzhu.ca>
This commit is contained in:
Adam Hess 2023-09-25 23:03:04 +00:00 коммит произвёл Peter Zhu
Родитель 3f511a1d09
Коммит ef59175a68
1 изменённых файлов: 4 добавлений и 0 удалений

4
iseq.c
Просмотреть файл

@ -188,7 +188,11 @@ rb_iseq_free(const rb_iseq_t *iseq)
ruby_xfree((void *)body->mark_bits.list);
}
ruby_xfree(body->variable.original_iseq);
if (body->param.keyword != NULL) {
if (body->param.keyword->table != &body->local_table[body->param.keyword->bits_start - body->param.keyword->num])
ruby_xfree((void *)body->param.keyword->table);
ruby_xfree((void *)body->param.keyword->default_values);
ruby_xfree((void *)body->param.keyword);
}