summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authordearblue <[email protected]>2020-09-24 22:25:26 +0900
committerdearblue <[email protected]>2020-09-25 21:02:58 +0900
commit57611240a972932ef26a13c6998a7fa90fd33371 (patch)
treea353c837094f8aab25a8e26474284ff78a151734 /src
parenta97f085c52c3a98ffd26e69ac1fd0d43dc83864c (diff)
downloadmruby-57611240a972932ef26a13c6998a7fa90fd33371.tar.gz
mruby-57611240a972932ef26a13c6998a7fa90fd33371.zip
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 *`.
Diffstat (limited to 'src')
-rw-r--r--src/class.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/class.c b/src/class.c
index fc8a38ff9..fcbdadea8 100644
--- a/src/class.c
+++ b/src/class.c
@@ -584,8 +584,8 @@ void mrb_hash_check_kdict(mrb_state *mrb, mrb_value self);
S: String [mrb_value] when ! follows, the value may be nil
A: Array [mrb_value] when ! follows, the value may be nil
H: Hash [mrb_value] when ! follows, the value may be nil
- s: String [char*,mrb_int] Receive two arguments; s! gives (NULL,0) for nil
- z: String [char*] NUL terminated string; z! gives NULL for nil
+ s: String [const char*,mrb_int] Receive two arguments; s! gives (NULL,0) for nil
+ z: String [const char*] NUL terminated string; z! gives NULL for nil
a: Array [mrb_value*,mrb_int] Receive two arguments; a! gives (NULL,0) for nil
c: Class/Module [strcut RClass*]
f: Fixnum/Float [mrb_float]
@@ -772,10 +772,10 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
case 's':
{
mrb_value ss;
- char **ps = 0;
+ const char **ps = 0;
mrb_int *pl = 0;
- ps = va_arg(ap, char**);
+ ps = va_arg(ap, const char**);
pl = va_arg(ap, mrb_int*);
if (i < argc) {
ss = argv[i++];