Re: [PATCH 2/3] sha1_file: add the ability to parse objects in "pack file format"
From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:42:33
Hi, On Tue, 11 Jul 2006, Linus Torvalds wrote:
On Tue, 11 Jul 2006, Johannes Schindelin wrote:quoted
You might want to add a comment saying "since the type is lowercase in ascii format, object_type must be 6 or 7, which is an invalid object type." It took me a little to figure that out...It's not even correct in my version - I check the ASCII header _first_, so by the time it looks at the binary one, it already knows it's not ascii.
Just realized it all by myself...
Or, more likely, the parse_sha1_header() function should just be changed to check the binary format first (and then add your comment about why that is safe).
Yes, exactly.
quoted
quoted
+ bits = 4; + while (!(c & 0x80)) { + if (bits >= 8*sizeof(unsigned long)) + return -1; + c = *hdr++; + size += (unsigned long) (c & 0x7f) << bits; + bytes++; + bits += 7; + }Are you not losing the last byte by putting the "while" _before_ instead of _after_ the loop?No. The very first byte can have the 0x80 end marker, when the size was between 0..15.
Yes, I understand now. I was a little confused by the way it is written... Thanks for the clarification, Dscho