From 73b6c6619ccb5911d417a7e72863ebcb0c34d70e Mon Sep 17 00:00:00 2001 From: dearblue Date: Sat, 15 Apr 2023 21:25:57 +0900 Subject: [PATCH] Need type check for `replace` by `String#bytesplice` --- src/string.c | 1 + test/t/string.rb | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/string.c b/src/string.c index b29a298c1..1bd3f6f8f 100644 --- a/src/string.c +++ b/src/string.c @@ -3006,6 +3006,7 @@ mrb_str_bytesplice(mrb_state *mrb, mrb_value str) mrb_get_args(mrb, "iiS", &idx1, &len1, &replace); return str_bytesplice(mrb, str, idx1, len1, replace, 0, RSTRING_LEN(replace)); } + mrb_ensure_string_type(mrb, replace); if (mrb_range_beg_len(mrb, range1, &idx1, &len1, RSTRING_LEN(str), FALSE) != MRB_RANGE_OK) break; if (mrb_range_beg_len(mrb, range2, &idx2, &len2, RSTRING_LEN(replace), FALSE) != MRB_RANGE_OK) break; return str_bytesplice(mrb, str, idx1, len1, replace, idx2, len2); diff --git a/test/t/string.rb b/test/t/string.rb index caba51b7c..7dbd5bca8 100644 --- a/test/t/string.rb +++ b/test/t/string.rb @@ -948,4 +948,7 @@ assert('String#bytesplice') do # idx, len, replace, idx, len (len1