From e5feaa1107c15ca269e23ece182ff8cc7102519b Mon Sep 17 00:00:00 2001 From: normal Date: Mon, 21 Dec 2015 18:57:50 +0000 Subject: avoid rb_bug on BasicSocket.for_fd(-1) * ext/socket/init.c (rsock_init_sock): check FD after validating * test/socket/test_basicsocket.rb (test_for_fd): new [ruby-core:72418] [Bug #11854] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/socket/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ext/socket/init.c') diff --git a/ext/socket/init.c b/ext/socket/init.c index d0711025a5..bd069263c6 100644 --- a/ext/socket/init.c +++ b/ext/socket/init.c @@ -61,10 +61,10 @@ rsock_init_sock(VALUE sock, int fd) { rb_io_t *fp; - rb_update_max_fd(fd); if (!is_socket(fd)) rb_raise(rb_eArgError, "not a socket file descriptor"); + rb_update_max_fd(fd); MakeOpenFile(sock, fp); fp->fd = fd; fp->mode = FMODE_READWRITE|FMODE_DUPLEX; -- cgit v1.2.3