From 0fe95d6c81300b5a8681badcdae46a85f6e7033e Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 5 Feb 2024 21:28:11 +0900 Subject: [PATCH] mruby-pack (mrb_pack_pack): avoid integer overflow `int` (32bit integer) may be too small on 64bit platforms. --- mrbgems/mruby-pack/src/pack.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/mrbgems/mruby-pack/src/pack.c b/mrbgems/mruby-pack/src/pack.c index 743b8663b..8f61b0bb7 100644 --- a/mrbgems/mruby-pack/src/pack.c +++ b/mrbgems/mruby-pack/src/pack.c @@ -1495,19 +1495,17 @@ static mrb_value mrb_pack_pack(mrb_state *mrb, mrb_value ary) { mrb_value o, result; - mrb_int aidx; struct tmpl tmpl; - int count; + enum pack_type type; + int count, size; unsigned int flags; enum pack_dir dir; - enum pack_type type; - int ridx, size; prepare_tmpl(mrb, &tmpl); result = mrb_str_new(mrb, NULL, 128); /* allocate initial buffer */ - aidx = 0; - ridx = 0; + mrb_int aidx = 0; + mrb_int ridx = 0; while (has_tmpl(&tmpl)) { dir = read_tmpl(mrb, &tmpl, &type, &size, &count, &flags);