Larry Hastings added the comment:
Martin: The code is not statically type-safe, but it is mechanically safe,
which I think is why you wrote the comment in the first place.
The return value of fread() is size_t, but the "read" variable is Py_ssize_t.
So the function *could* theoretically return a value that would overflow the
variable. However, this can't happen in practice because the input size ("n")
is also Py_ssize_t. And fread() will never return a number larger than the
number of bytes requested. QED the function will never return a number larger
than one that could be stored in Py_ssize_t.
If the comment originally had merit, then it still has merit. It was referring
to this exact same situation, except back then the "n" and "read" variables
were both type "int". They were both changed to "Py_ssize_t" some time ago but
the comment was not updated.
Since Martin contributed the original code and comment I leave it to him to
decide its fate, Antoine's shooting-from-the-hip aside.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue19260>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com