diff options
| -rw-r--r-- | mrbgems/mruby-sprintf/src/sprintf.c | 3 | ||||
| -rw-r--r-- | src/string.c | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/mrbgems/mruby-sprintf/src/sprintf.c b/mrbgems/mruby-sprintf/src/sprintf.c index b5f9284d9..af0ca08ba 100644 --- a/mrbgems/mruby-sprintf/src/sprintf.c +++ b/mrbgems/mruby-sprintf/src/sprintf.c @@ -155,7 +155,8 @@ static void check_pos_arg(mrb_state *mrb, int posarg, int n) { if (posarg > 0) { - mrb_raisef(mrb, E_ARGUMENT_ERROR, "numbered(%S) after unnumbered(%S)", mrb_fixnum_value(n)); + mrb_raisef(mrb, E_ARGUMENT_ERROR, "numbered(%S) after unnumbered(%S)", + mrb_fixnum_value(n), mrb_fixnum_value(posarg)); } if (posarg == -2) { mrb_raisef(mrb, E_ARGUMENT_ERROR, "numbered(%S) after named", mrb_fixnum_value(n)); diff --git a/src/string.c b/src/string.c index 2d5006612..56eeef3a2 100644 --- a/src/string.c +++ b/src/string.c @@ -754,6 +754,9 @@ mrb_str_concat(mrb_state *mrb, mrb_value self, mrb_value other) other = mrb_str_to_str(mrb, other); } s2 = mrb_str_ptr(other); + if (RSTR_LEN(s2) == 0) { + return; + } len = RSTR_LEN(s1) + RSTR_LEN(s2); if (len < 0 || len >= MRB_INT_MAX) { |
