diff options
| -rw-r--r-- | mrbgems/mruby-pack/src/pack.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mrbgems/mruby-pack/src/pack.c b/mrbgems/mruby-pack/src/pack.c index ceb862d3f..30139fb74 100644 --- a/mrbgems/mruby-pack/src/pack.c +++ b/mrbgems/mruby-pack/src/pack.c @@ -1050,6 +1050,9 @@ alias: count = ch - '0'; while (tmpl->idx < tlen && isdigit(tptr[tmpl->idx])) { count = count * 10 + (tptr[tmpl->idx++] - '0'); + if (count < 0) { + mrb_raisef(mrb, E_RUNTIME_ERROR, "too big template length"); + } } continue; /* special case */ } else if (ch == '*') { |
