diff options
| author | Tomoyuki Sahara <[email protected]> | 2017-09-12 12:32:12 +0900 |
|---|---|---|
| committer | Tomoyuki Sahara <[email protected]> | 2017-09-12 12:32:12 +0900 |
| commit | ab54185005ec87fe4f5b10df95ad29659884141b (patch) | |
| tree | a173999c4e15704fbc1e3c50eee0b5c46bda16f0 /src/socket.c | |
| parent | a809d42f5aaf093a5667e505c512adadb74ce34a (diff) | |
| download | mruby-ab54185005ec87fe4f5b10df95ad29659884141b.tar.gz mruby-ab54185005ec87fe4f5b10df95ad29659884141b.zip | |
receiver variables must be "mrb_int" for mrb_get_args("i").
Otherwise, it can cause a segfault on the platforms where the
size of "int" and "mrb_int" differs.
Diffstat (limited to 'src/socket.c')
| -rw-r--r-- | src/socket.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/socket.c b/src/socket.c index 3f4ef8a4c..758d3a311 100644 --- a/src/socket.c +++ b/src/socket.c @@ -586,10 +586,10 @@ static mrb_value mrb_socket_bind(mrb_state *mrb, mrb_value klass) { mrb_value sastr; - int s; + mrb_int s; mrb_get_args(mrb, "iS", &s, &sastr); - if (bind(s, (struct sockaddr *)RSTRING_PTR(sastr), (socklen_t)RSTRING_LEN(sastr)) == -1) { + if (bind((int)s, (struct sockaddr *)RSTRING_PTR(sastr), (socklen_t)RSTRING_LEN(sastr)) == -1) { mrb_sys_fail(mrb, "bind"); } return mrb_nil_value(); @@ -599,10 +599,10 @@ static mrb_value mrb_socket_connect(mrb_state *mrb, mrb_value klass) { mrb_value sastr; - int s; + mrb_int s; mrb_get_args(mrb, "iS", &s, &sastr); - if (connect(s, (struct sockaddr *)RSTRING_PTR(sastr), (socklen_t)RSTRING_LEN(sastr)) == -1) { + if (connect((int)s, (struct sockaddr *)RSTRING_PTR(sastr), (socklen_t)RSTRING_LEN(sastr)) == -1) { mrb_sys_fail(mrb, "connect"); } return mrb_nil_value(); |
