# HG changeset patch # User Greg Ward # Date 1238706843 14400 # Node ID 9c7d88b94b088b3d68011d197369f70ad88e0d4a # Parent 987d1e08bec512fe8ce9af19ff2e83c76a5aca81 Don't blow up or go into an infinite loop on seeing EOF after "data". (Patch from rev 55.1.1 of http://bazaar.launchpad.net/~bzr/bzr-fastimport/fastimport.dev by James Westby ). diff -r 987d1e08bec5 -r 9c7d88b94b08 fastimport/parser.py --- a/fastimport/parser.py Thu Apr 02 16:37:14 2009 -0400 +++ b/fastimport/parser.py Thu Apr 02 17:14:03 2009 -0400 @@ -433,14 +433,13 @@ return self.read_until(rest[2:]) else: size = int(rest) - res = self.read_bytes(size) - # consume extra LF if present - while True: - line = self.next_line() - if line != '': - self.push_line(line) - break - return res + result = self.read_bytes(size) + # optional LF after data. + next = self.input.readline() + self.lineno += 1 + if len(next) > 1 or next != "\n": + self.push_line(next) + return result else: self.abort(errors.MissingSection, required_for, section)