On Wed, Sep 16, 2015 at 11:24:27AM -0700, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > On Tue, Sep 15, 2015 at 11:19:21PM -0400, Eric Sunshine wrote: > > > >> > strcpy(hexbuf[stage], sha1_to_hex(ce->sha1)); > >> > - sprintf(ownbuf[stage], "%o", ce->ce_mode); > >> > + xsnprintf(ownbuf[stage], sizeof(ownbuf[stage]), "%o", ce->ce_mode); > >> > >> Interesting. I wonder if there are any (old/broken) compilers which > >> would barf on this. If we care, perhaps sizeof(ownbuf[0]) instead? > > > > Good point. I've changed it to sizeof(ownbuf[0]). > > Panda brain is lost here. What's the difference, other than that we > will now appear to be measuring the size of the thing at index 0 > while using that size to stuff data into a different location? All > elements of the array are of the same size so there wouldn't be any > difference either way, no? Correct. The original is sane and gcc does the right thing. The question is whether some compiler would complain that "stage" is not a constant in the sizeof() expression. I don't know if any compiler would do so, but it is easy enough to be conservative. -Peff -- To unsubscribe from this list: 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