mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* io.c (rb_update_max_fd): validate fd.
* ext/socket/rubysocket.h (rsock_discard_cmsg_resource): add msg_peek_p argument for the declaration. * ext/socket/ancdata.c (discard_cmsg): add msg_peek_p argument. assume FreeBSD, NetBSD and MacOS X doesn't generate passed fd when MSG_PEEK. (rsock_discard_cmsg_resource): add msg_peek_p argument. (bsock_recvmsg_internal): call rsock_discard_cmsg_resource with msg_peek_p argument. * ext/socket/unixsocket.c (unix_recv_io): call rsock_discard_cmsg_resource with msg_peek_p argument. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c93ed570a2
commit
2bcd502a71
5 changed files with 42 additions and 19 deletions
|
@ -367,7 +367,7 @@ unix_recv_io(int argc, VALUE *argv, VALUE sock)
|
|||
(int)arg.msg.msg_controllen, (int)CMSG_SPACE(sizeof(int)));
|
||||
}
|
||||
if (cmsg.hdr.cmsg_len != CMSG_LEN(sizeof(int))) {
|
||||
rsock_discard_cmsg_resource(&arg.msg);
|
||||
rsock_discard_cmsg_resource(&arg.msg, 0);
|
||||
rb_raise(rb_eSocket,
|
||||
"file descriptor was not passed (cmsg_len=%d, %d expected)",
|
||||
(int)cmsg.hdr.cmsg_len, (int)CMSG_LEN(sizeof(int)));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue