Description
A bug in req_readlines(sizehint) in requestobject.c causes output to be returned prematurely for any value of the optional sizehint argument.
The faulty bit of code is:
line = req_readline(self, rlargs);
while (line && (PyString_Size(line)>0))
Since (size >= size) will always be true, reading the input stream will end prematurely for any value of sizehint != -1.
This code will fix the problem.
— requestobject.c (revision 417294)
+++ requestobject.c (working copy)
@@ -1154,7 +1154,7 @@
while (line && (PyString_Size(line)>0))
Once that is fixed the documentation needs to be revised, as it does not accurately reflect the behaviour of the code.
Currently the docs are:
"""Reads all or up to sizehint bytes of lines using readline and returns a list of the lines read."""
whereas the code can read beyond sizehint. The total read could actually be sizehint + len(line) where line is the last line read.