On 8/21/06, Alexander Belopolsky <alexander.belopolsky at gmail.com> wrote: > > > On Aug 15, 2006, at 3:16 AM, Martin v. Löwis wrote: > > > > > Where does it assume that it is safe to case ssize_t -> long? > > That would be a bug. > > Is this a bug? > > file_readinto(PyFileObject *f, PyObject *args) > { > ... > Py_ssize_t ndone, nnow; > ... > return PyInt_FromLong((long)ndone); > } > > See Objects/fileobject.c (revision 51420). Yes. Py_ssize_t can be bigger than a long (on LLP64 systems, such as Win64). It doesn't matter on other systems, and you have to read more than 31 bits worth of data to detect it even on Win64, but it's still a bug. file_readinto should be using PyInt_FromSsize_t() instead. (There is the SAFE_DOWNCAST macro for cases where we know the *value* of the (s)size_t will always fit in a long, on any supported system, but that isn't the case here.) -- Thomas Wouters <thomas at python.org> Hi! I'm a .signature virus! copy me into your .signature file to help me spread! -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/python-dev/attachments/20060821/4e09574e/attachment.htm
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4