changeset 13:9c7d88b94b08

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 <jw+debian@jameswestby.net>).
author Greg Ward <greg-hg@gerg.ca>
date Thu, 02 Apr 2009 17:14:03 -0400
parents 987d1e08bec5
children f6f0fd01b34a
files fastimport/parser.py
diffstat 1 files changed, 7 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- 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)