diff --git a/mrbgems/mruby-pack/src/pack.c b/mrbgems/mruby-pack/src/pack.c index 1edaac93b..b150f5e16 100644 --- a/mrbgems/mruby-pack/src/pack.c +++ b/mrbgems/mruby-pack/src/pack.c @@ -414,6 +414,7 @@ unpack_BER(mrb_state *mrb, const unsigned char *src, int srclen, mrb_value ary, const unsigned char *p = src; const unsigned char *e = p + srclen; + if (srclen == 0) return 0; for (i=1; p (MRB_INT_MAX>>7)) { mrb_raise(mrb, E_RANGE_ERROR, "BER unpacking 'w' overflow");