From 57611240a972932ef26a13c6998a7fa90fd33371 Mon Sep 17 00:00:00 2001 From: dearblue Date: Thu, 24 Sep 2020 22:25:26 +0900 Subject: Prohibit string changes by "s"/"z" specifier of `mrb_get_args()` - The `s` specifier is a string pointer obtained without performing `mrb_str_modify()`, so it cannot be changed. - The `z` specifier cannot be changed because it is a string pointer obtained by `RSTRING_CSTR()` which returns `const char *`. --- mrbgems/mruby-string-ext/src/string.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'mrbgems/mruby-string-ext/src') diff --git a/mrbgems/mruby-string-ext/src/string.c b/mrbgems/mruby-string-ext/src/string.c index 7cf146ec8..ded34a89e 100644 --- a/mrbgems/mruby-string-ext/src/string.c +++ b/mrbgems/mruby-string-ext/src/string.c @@ -1072,7 +1072,8 @@ static mrb_value mrb_str_del_prefix_bang(mrb_state *mrb, mrb_value self) { mrb_int plen, slen; - char *ptr, *s; + const char *ptr; + char *s; struct RString *str = RSTRING(self); mrb_get_args(mrb, "s", &ptr, &plen); @@ -1105,7 +1106,7 @@ static mrb_value mrb_str_del_prefix(mrb_state *mrb, mrb_value self) { mrb_int plen, slen; - char *ptr; + const char *ptr; mrb_get_args(mrb, "s", &ptr, &plen); slen = RSTRING_LEN(self); @@ -1129,7 +1130,8 @@ static mrb_value mrb_str_del_suffix_bang(mrb_state *mrb, mrb_value self) { mrb_int plen, slen; - char *ptr, *s; + const char *ptr; + char *s; struct RString *str = RSTRING(self); mrb_get_args(mrb, "s", &ptr, &plen); @@ -1160,7 +1162,7 @@ static mrb_value mrb_str_del_suffix(mrb_state *mrb, mrb_value self) { mrb_int plen, slen; - char *ptr; + const char *ptr; mrb_get_args(mrb, "s", &ptr, &plen); slen = RSTRING_LEN(self); -- cgit v1.2.3