summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-22 22:28:31 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-12-22 22:28:31 +0000
commit1abef5bd1138aa5565709a20a928bf3398664ab9 (patch)
tree7351e997b0a3ae097e0ab517098274ec2b07f77e
parent299e5e52d679f17b92db4d70651cd15c320c3fe2 (diff)
ext/socket/init.c (rsock_init_sock): reject reserved FDs
[ruby-core:72445] [Bug #11862] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--ext/socket/init.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 00ce4b7e0e..9e91e3244b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Dec 23 07:15:17 2015 Eric Wong <e@80x24.org>
+
+ * ext/socket/init.c (rsock_init_sock): reject reserved FDs
+ [ruby-core:72445] [Bug #11862]
+
Wed Dec 23 02:59:26 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in (__STDC_WANT_LIB_EXT1__): necessary to use memset_s
diff --git a/ext/socket/init.c b/ext/socket/init.c
index bc01217641..66da534a58 100644
--- a/ext/socket/init.c
+++ b/ext/socket/init.c
@@ -61,7 +61,7 @@ rsock_init_sock(VALUE sock, int fd)
{
rb_io_t *fp;
- if (!is_socket(fd)) {
+ if (!is_socket(fd) || rb_reserved_fd_p(fd)) {
errno = EBADF;
rb_sys_fail("not a socket file descriptor");
}