[viewvc-dev] [PATCH} fix inf loop in rcsparse

Linas Vepstas <[email protected]> Fri, 21 Nov 2014 12:42:13 -0600
Newsgroups gmane.comp.version-control.cvs.viewcvs.devel
Message-ID <CAHrUA365uAqC5YhKkpM71KEzbgHzoyaCadLAxPAG_tyKGnawKg__12539.4955896356$1416597831$gmane$org@mail.gmail.com>
I hit an inf loop in rcsparse, presumably due to some particular file
in my data being 'just so'.  The patch below fixes it: it is simply a
cut-n-paste of a check made a few dozen lines higher up.   BTW, I
first tripped over this in cvs2svn, which shares this code with
viewvc.

--- a/trunk/lib/vclib/ccvs/rcsparse/default.py.orig
2014-11-21 12:18:02.880417060 -0600
+++ b/trunk/lib/vclib/ccvs/rcsparse/default.py
2014-11-21 12:26:59.226222392 -0600
@@ -88,6 +88,10 @@ class _TokenStream:

         # we stopped at the end of the buffer, so we may have a partial
         # token
         buf = self.rcsfile.read(self.CHUNK_SIZE)
+        if buf == '':
+          # signal EOF by returning None as the token
+          del self.buf   # so we fail if get() is called again
+          return None
         lbuf = len(buf)
         idx = end = 0



-- linas

------------------------------------------------------
http://viewvc.tigris.org/ds/viewMessage.do?dsForumId=4251&dsMessageId=3091675

To unsubscribe from this discussion, e-mail: [[email protected]].