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

"C. Michael Pilato" <[email protected]> Fri, 21 Nov 2014 15:43:28 -0500
Newsgroups gmane.comp.version-control.cvs.viewcvs.devel
Organization CollabNet, Inc.
Message-ID <[email protected]>
Haha!  Did you happen to identify what was unique about the problematic
RCS file?

On 11/21/2014 03:29 PM, Linas Vepstas wrote:
> Welcome. When my job ran 24 hours, I said to myself 'no way my repo is
> that big'. :-)
>
> On Fri, Nov 21, 2014 at 2:18 PM, C. Michael Pilato <[email protected]> wrote:
>> On 11/21/2014 01:42 PM, Linas Vepstas wrote:
>>> 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
>> Thanks for the patch.  I've committed it to our trunk, and backported to
>> the 1.1.x branch, too.
>>


-- 
C. Michael Pilato <[email protected]>
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development

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

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