summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorTomoyuki Sahara <[email protected]>2017-09-12 12:32:12 +0900
committerTomoyuki Sahara <[email protected]>2017-09-12 12:32:12 +0900
commitab54185005ec87fe4f5b10df95ad29659884141b (patch)
treea173999c4e15704fbc1e3c50eee0b5c46bda16f0 /src
parenta809d42f5aaf093a5667e505c512adadb74ce34a (diff)
downloadmruby-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')
-rw-r--r--src/socket.c8
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();