id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 15018,LimitedStream.readline deals parameter not correct,xjdrew,nobody,"I read the code at (http://code.djangoproject.com/browser/django/trunk/django/core/handlers/wsgi.py), LimitedStream.readline function maybe go wrong when the situation meet criteria below: 1. '\n' not in self.buffer 2. and size is not None 3. and len(self.buffer) > len(self.buffer) it will go to ln102, and leads the parameter of LimitedStream._read_limited is negative, and it will be bypassed to ln82. I don't read the implementation of self.stream.read, so i'm not sure if it will cause damage. Please tell me if I misunderstand the code, thanks. below is the code: {{{ 98 def readline(self, size=None): 99 while '\n' not in self.buffer or \ 100 (size is not None and len(self.buffer) < size): 101 if size: 102 chunk = self._read_limited(size - len(self.buffer)) 103 else: 104 chunk = self._read_limited() 105 if not chunk: 106 break 107 self.buffer += chunk 108 sio = StringIO(self.buffer) 109 if size: 110 line = sio.readline(size) 111 else: 112 line = sio.readline() 113 self.buffer = sio.read() 114 return line }}} {{{ 77 def _read_limited(self, size=None): 78 if size is None or size > self.remaining: 79 size = self.remaining 80 if size == 0: 81 return '' 82 result = self.stream.read(size) 83 self.remaining -= len(result) 84 return result }}} best regards, Drew",,closed,Core (Other),dev,,fixed,"blocker, regression",,Accepted,1,0,0,0,0,0