Hi, On Tue, 11 Jul 2006, Linus Torvalds wrote: > On Tue, 11 Jul 2006, Johannes Schindelin wrote: > > > 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. > > > + 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 - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html