From b636dc67ed3c351d9631a7900ea05c3394a99518 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 12 Oct 2000 16:45:37 +0000 Subject: [PATCH] [ Bug #116636 ] Bug in StringIO.write() http://sourceforge.net/bugs/?func=detailbug&bug_id=116636&group_id=5470 bobalex@rsv.ricoh.com Bug report: If the file position is less than the end of the "file", and a write is performed extending past then end of the file, the data string is corrupted. Solution: in write(), when writing past the end, properly set self.len when newpos is > self.len. --- Lib/StringIO.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Lib/StringIO.py b/Lib/StringIO.py index 334bf853a2c..6952b1a999e 100644 --- a/Lib/StringIO.py +++ b/Lib/StringIO.py @@ -129,6 +129,8 @@ def write(self, s): self.buflist = [] self.buflist = [self.buf[:self.pos], s, self.buf[newpos:]] self.buf = '' + if newpos > self.len: + self.len = newpos else: self.buflist.append(s) self.len = newpos