Re: Infinite loop in cascade_filter_fn()
- From
Carlos Martín Nieto <cmn@elego.de>
- Date
- Nov 25, 2011, 14:31 UTC
- Message-ID
- <20111125143131.GA10417@beez.lab.cmartin.tk>
- In-Reply-To
- <Pine.GSO.4.63.1111231801580.5099@shipon.roxen.com>
On Wed, Nov 23, 2011 at 06:40:47PM +0100, Henrik Grubbström wrote:
Show 5 quoted lines
> Hi. > > My git repository walker just got bitten by what seems to be a > reasonably new bug in convert.c:cascade_filter_fn() (git 1.7.8.rc3 > (gentoo)).
It looks like it's a bug between cascade_filter_fn and the actual filter function lf_to_crlf_filter_fn that gets triggered when the output buffer is too small. In this particular case, *isize_p=378 and *osize_p=1 which causes cascade_filter_fn to feed the filter data which it can't process because it doesn't have anywhere to put it.
I think that the function assumes that the output buffer is always large enough, but there are many indirections, so it might be an off-by-one.
Show 21 quoted lines
> > How to reproduce: > > git clone git@github.com:pikelang/Pike.git > > git checkout -f 0e2080f838c6f0bc7d670ac7549676a353451dca^ > > git checkout -f 0e2080f838c6f0bc7d670ac7549676a353451dca > > The first two commands complete as expected, while the last hangs forever. > Performing the same with git 1.7.6.4 works as expected. > > The problematic file seems to be > /src/modules/_Crypto/rijndael_ecb_vt.txt which has the attributes: > text ident eol=crlf > > Thanks, > > -- > Henrik Grubbström grubba@grubba.org > Roxen Internet Software AB grubba@roxen.com