homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Missing cast to Py_ssize_t in socket_connection.c
Type: behavior Stage:
Components: Library (Lib) Versions: Python 2.7
process
Status: closed Resolution: out of date
Dependencies: Superseder: multiprocessing: conn_recv_string() broken error handling
View: 10133
Assigned To: Nosy List: MOtter, amaury.forgeotdarc
Priority: normal Keywords:

Created on 2012年06月11日 14:46 by MOtter, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Messages (2)
msg162620 - (view) Author: Marco den Otter (MOtter) Date: 2012年06月11日 14:46
In the file socket_connection.c on line 139 a cast to Py_ssize_t is missing for the return value.
Is:
 return res < 0 ? res : ulength;
Should be
 return res < 0 ? (Py_ssize_t)res : (Py_ssize_t)ulength;
Now it can be possible that a close of the socket is not detected.
Found the bug by creating a server client that only sends the length of a data package and then closing the socket. 
Without the cast the calling function (connection_recvbytes in connection.h) will try to return an object because of not detecting the result was smaller then 0.
msg162632 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2012年06月11日 17:57
This was fixed 3 hours ago, with issue10133 :)
History
Date User Action Args
2022年04月11日 14:57:31adminsetgithub: 59251
2012年06月11日 17:57:29amaury.forgeotdarcsetstatus: open -> closed

nosy: + amaury.forgeotdarc
messages: + msg162632

superseder: multiprocessing: conn_recv_string() broken error handling
resolution: out of date
2012年06月11日 14:46:10MOttercreate

AltStyle によって変換されたページ (->オリジナル) /