ruby-changes:13556
From: akr <ko1@a...>
Date: Thu, 15 Oct 2009 00:26:52 +0900 (JST)
Subject: [ruby-changes:13556] Ruby:r25336 (trunk): * ext/socket/init.c (rsock_init_sock): validate file descriptor.
akr 2009-10-15 00:26:40 +0900 (Thu, 15 Oct 2009) New Revision: 25336 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25336 Log: * ext/socket/init.c (rsock_init_sock): validate file descriptor. Modified files: trunk/ChangeLog trunk/ext/socket/init.c Index: ChangeLog =================================================================== --- ChangeLog (revision 25335) +++ ChangeLog (revision 25336) @@ -1,3 +1,7 @@ +Thu Oct 15 00:26:07 2009 Tanaka Akira <akr@f...> + + * ext/socket/init.c (rsock_init_sock): validate file descriptor. + Wed Oct 14 13:24:14 2009 Nobuyoshi Nakada <nobu@r...> * ruby.c (process_options): script name should not be shown in an Index: ext/socket/init.c =================================================================== --- ext/socket/init.c (revision 25335) +++ ext/socket/init.c (revision 25336) @@ -43,7 +43,13 @@ rsock_init_sock(VALUE sock, int fd) { rb_io_t *fp; + struct stat sbuf; + if (fstat(fd, &sbuf) < 0) + rb_sys_fail(0); + if (!S_ISSOCK(sbuf.st_mode)) + rb_raise(rb_eArgError, "not a socket file descriptor"); + MakeOpenFile(sock, fp); fp->fd = fd; fp->mode = FMODE_READWRITE|FMODE_DUPLEX; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/