summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-socket
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 /mrbgems/mruby-socket
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 'mrbgems/mruby-socket')
-rw-r--r--mrbgems/mruby-socket/src/socket.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/mrbgems/mruby-socket/src/socket.c b/mrbgems/mruby-socket/src/socket.c
index 916309bcf..a819dcb29 100644
--- a/mrbgems/mruby-socket/src/socket.c
+++ b/mrbgems/mruby-socket/src/socket.c
@@ -515,7 +515,8 @@ static mrb_value
mrb_ipsocket_ntop(mrb_state *mrb, mrb_value klass)
{
mrb_int af, n;
- char *addr, buf[50];
+ const char *addr;
+ char buf[50];
mrb_get_args(mrb, "is", &af, &addr, &n);
if ((af == AF_INET && n != 4) || (af == AF_INET6 && n != 16))
@@ -529,7 +530,8 @@ static mrb_value
mrb_ipsocket_pton(mrb_state *mrb, mrb_value klass)
{
mrb_int af, n;
- char *bp, buf[50];
+ const char *bp;
+ char buf[50];
mrb_get_args(mrb, "is", &af, &bp, &n);
if ((size_t)n > sizeof(buf) - 1)