This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi Nick, On Wed, Apr 30, 2008 at 08:19:54AM +0100, Nick Clifton wrote: > Hi Joel, > > >2008-04-29 Joel Brobecker <brobecker@adacore.com> > > > > * cache.c (cache_bread_1): Renames cache_bread. > > (cache_bread): New function. > > A reasonable idea, but I think that there is a bug: > > >+ chunk_nread = cache_bread_1 (abfd, buf + nread, chunk_size); > >+ nread += chunk_nread; > >+ > >+ if (chunk_nread < chunk_size) > >+ break; > >+ } > >+ > >+ return nread; > > If cache_bread_1() returns -1 for a read after the first chunk then > cache_bread() will return one less byte than was actually read. Hardly > world shattering I agree, but it would nice to see this corner case > handled correctly. Argh! You are right, I completely missed the case when cache_bread_1 would return a negative value. Thanks for catching this. I think the following patch should work better. 2008-04-30 Joel Brobecker <brobecker@adacore.com> * cache.c (cache_bread_1): Renames cache_bread. (cache_bread): New function. Tested similarly as before (gdb testsuite, max_chunk_size set to 0x100 and 8MB). -- Joel
Attachment:
cache.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |