summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mrbgems/mruby-pack/src/pack.c3
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 == '*') {