diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-02-26 12:06:17 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-02-26 12:06:17 +0000 |
commit | 785f417270a7cb8f815514e63a7f4d4e8d1d377c (patch) | |
tree | b30c312f5c3008b4d7735689725df7b0a1f51ae4 /ext/socket/raddrinfo.c | |
parent | 07298aba22284e3eadc7d250205f365e3ff20d37 (diff) | |
download | ruby-785f417270a7cb8f815514e63a7f4d4e8d1d377c.tar.gz |
* ext/socket/raddrinfo.c, ext/socket/udpsocket.c: avoid illegal cast
from void-returning function to VALUE-returning one. It causes SEGV
on RubySpec with mingw32.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket/raddrinfo.c')
-rw-r--r-- | ext/socket/raddrinfo.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/socket/raddrinfo.c b/ext/socket/raddrinfo.c index de8c7dc768..822ab1718a 100644 --- a/ext/socket/raddrinfo.c +++ b/ext/socket/raddrinfo.c @@ -457,6 +457,13 @@ make_hostent_internal(struct hostent_arg *arg) } VALUE +rsock_freeaddrinfo(struct addrinfo *addr) +{ + freeaddrinfo(addr); + return Qnil; +} + +VALUE rsock_make_hostent(VALUE host, struct addrinfo *addr, VALUE (*ipaddr)(struct sockaddr *, size_t)) { struct hostent_arg arg; @@ -465,7 +472,7 @@ rsock_make_hostent(VALUE host, struct addrinfo *addr, VALUE (*ipaddr)(struct soc arg.addr = addr; arg.ipaddr = ipaddr; return rb_ensure(make_hostent_internal, (VALUE)&arg, - RUBY_METHOD_FUNC(freeaddrinfo), (VALUE)addr); + rsock_freeaddrinfo, (VALUE)addr); } typedef struct { |