New submission from Ben Darnell <ben.darn...@gmail.com>:

Line 125 of multiprocessing.c is "*CMSG_DATA(cmsg) = fd;".  CMSG_DATA returns 
an unsigned char*, while fd is an int, so this code does not support file 
descriptors > 256 (additionally, I'm not sure if the buffer is guaranteed to be 
initialized with zeros).   recvfd has an analogous problem at line 168.  Both 
of these need to be changed to copy the entire integer, e.g. by casting the 
result of CMSG_DATA to an int*.

http://hg.python.org/cpython/file/5deb2094f033/Modules/_multiprocessing/multiprocessing.c

----------
messages: 131947
nosy: Ben.Darnell
priority: normal
severity: normal
status: open
title: multiprocessing_{send,recv}fd fail with fds > 256
type: behavior

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue11657>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to