diff --git a/mrbgems/mruby-pack/src/pack.c b/mrbgems/mruby-pack/src/pack.c index 26c2890b0..08db9091b 100644 --- a/mrbgems/mruby-pack/src/pack.c +++ b/mrbgems/mruby-pack/src/pack.c @@ -921,7 +921,7 @@ unpack_bstr(mrb_state *mrb, const void *src, int slen, mrb_value ary, int count, const char *sptr0 = (const char*)src; const char *sptr = sptr0; - if (count == -1) + if (count == -1 || count > slen * 8) count = slen * 8; mrb_value dst = mrb_str_new(mrb, NULL, count);