diff options
| author | dearblue <[email protected]> | 2020-09-24 22:25:26 +0900 |
|---|---|---|
| committer | dearblue <[email protected]> | 2020-09-25 21:02:58 +0900 |
| commit | 57611240a972932ef26a13c6998a7fa90fd33371 (patch) | |
| tree | a353c837094f8aab25a8e26474284ff78a151734 /src | |
| parent | a97f085c52c3a98ffd26e69ac1fd0d43dc83864c (diff) | |
| download | mruby-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.c | 8 |
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++]; |
