summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-sprintf
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-05-25 10:40:35 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-05-25 10:40:35 +0900
commit3ef97e3dd9fdd31ecca30d04d0fc3783ca8dab58 (patch)
tree2b01864351ff3165b3b560773f109e8741dda506 /mrbgems/mruby-sprintf
parent9bca887ac454770a8d759832853a78a5fc942147 (diff)
downloadmruby-3ef97e3dd9fdd31ecca30d04d0fc3783ca8dab58.tar.gz
mruby-3ef97e3dd9fdd31ecca30d04d0fc3783ca8dab58.zip
Under MRB_INT64, width may be bigger than INT_MAX; fix #3665
Diffstat (limited to 'mrbgems/mruby-sprintf')
-rw-r--r--mrbgems/mruby-sprintf/src/sprintf.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/mrbgems/mruby-sprintf/src/sprintf.c b/mrbgems/mruby-sprintf/src/sprintf.c
index 8df0d9360..b1dfabbc2 100644
--- a/mrbgems/mruby-sprintf/src/sprintf.c
+++ b/mrbgems/mruby-sprintf/src/sprintf.c
@@ -1034,6 +1034,9 @@ retry:
if ((flags & FWIDTH) && need < width)
need = width;
+ if (need < 0) {
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "width too big");
+ }
FILL(' ', need);
if (flags & FMINUS) {
if (sign)