mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Limit size of iseq buffer; fix #3927
This commit is contained in:
@@ -149,8 +149,14 @@ new_label(codegen_scope *s)
|
||||
static inline int
|
||||
genop(codegen_scope *s, mrb_code i)
|
||||
{
|
||||
if (s->pc == s->icapa) {
|
||||
if (s->pc >= s->icapa) {
|
||||
s->icapa *= 2;
|
||||
if (s->pc >= MAXARG_sBx) {
|
||||
codegen_error(s, "too big code block");
|
||||
}
|
||||
if (s->icapa > MAXARG_sBx) {
|
||||
s->icapa = MAXARG_sBx;
|
||||
}
|
||||
s->iseq = (mrb_code *)codegen_realloc(s, s->iseq, sizeof(mrb_code)*s->icapa);
|
||||
if (s->lines) {
|
||||
s->lines = (uint16_t*)codegen_realloc(s, s->lines, sizeof(short)*s->icapa);
|
||||
|
||||
Reference in New Issue
Block a user