diff options
| -rw-r--r-- | mrbgems/mruby-sprintf/src/sprintf.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/mrbgems/mruby-sprintf/src/sprintf.c b/mrbgems/mruby-sprintf/src/sprintf.c index a3e20d83a..fcda7733d 100644 --- a/mrbgems/mruby-sprintf/src/sprintf.c +++ b/mrbgems/mruby-sprintf/src/sprintf.c @@ -1049,7 +1049,10 @@ retry: need = width; CHECK(need + 1); - snprintf(&buf[blen], need + 1, "%*s", need, ""); + n = snprintf(&buf[blen], need + 1, "%*s", need, ""); + if (n < 0) { + mrb_raise(mrb, E_RUNTIME_ERROR, "formatting error"); + } if (flags & FMINUS) { if (!isnan(fval) && fval < 0.0) buf[blen++] = '-'; |
