* Matthew Toseland <toad at amphibian.dyndns.org> [2009-02-24 16:29:39]:

> On Friday 30 January 2009 15:43:34 nextgens at freenetproject.org wrote:
> > Author: nextgens
> > Date: 2009-01-30 15:43:34 +0000 (Fri, 30 Jan 2009)
> > New Revision: 25398
> > 
> > Modified:
> >    trunk/freenet/src/freenet/support/io/LineReadingInputStream.java
> > Log:
> > doh2!
> > 
> > Modified: trunk/freenet/src/freenet/support/io/LineReadingInputStream.java
> > ===================================================================
> > --- trunk/freenet/src/freenet/support/io/LineReadingInputStream.java        
> 2009-01-30 15:21:49 UTC (rev 25397)
> > +++ trunk/freenet/src/freenet/support/io/LineReadingInputStream.java        
> 2009-01-30 15:43:34 UTC (rev 25398)
> > @@ -35,7 +35,7 @@
> >             int ctr = 0;
> >             mark(maxLength + 2); // in case we have both a \r and a \n
> >             while(true) {
> > -                   int x = read(buf, ctr, Math.min(1, buf.length - ctr));
> > +                   int x = read(buf, ctr, Math.max(1, buf.length - ctr));
> 
> This is bad. If it does anything (which I doubt), it will generate 
> ArrayIndexOutOfBounds'es.
> 
> If this code is busy looping then there must be another reason for it. If 
> buf.length == ctr, then the buffer should be extended automatically, unless 
> buf.length == maxLength, in which case we should throw a TooLongException. 
> This won't happen if we read 0 bytes, but in that case we would have thrown 
> on the previous iteration.

See r25844
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20090226/7b227727/attachment.pgp>

Reply via email to