Patch for inf loop in rcsparse
Linas Vepstas <[email protected]> Fri, 21 Nov 2014 12:29:08 -0600
| Newsgroups | gmane.comp.version-control.subversion.cvs2svn.devel |
|---|---|
| Message-ID | <CAHrUA360w+ZhxBpQM_SqGGd5mOWv--cuhbVTb3Xtt0SPemJBYA@mail.gmail.com> |
Hi,
I tripped over an inf loop in the cvs2svn_rcsparse part of the code.
The fix seems to be a simple cut-n-paste of an error check done a few
dozen lines earlier. The patch is:
--- a/cvs2svn_rcsparse/default.py.orig 2014-11-21 12:18:02.880417060 -0600
+++ b/cvs2svn_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
Without this, this particular block gets stuck in an infinite loop.
Presumably, this is a rare, data-dependent ocurance ...
--linas
------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1667&dsMessageId=3091674
To unsubscribe from this discussion, e-mail: [[email protected]].