Hi Junio,

On Wed, 8 Oct 2014, Junio C Hamano wrote:

> Marat Radchenko <ma...@slonopotamus.org> writes:
> 
> >  #define DEFAULT_PACKED_GIT_LIMIT \
> > -   ((1024L * 1024L) * (sizeof(void*) >= 8 ? 8192 : 256))
> > +   ((size_t)(1024L * 1024L) * (sizeof(void*) >= 8 ? 8192 : 256))
> 
> 1024 * 1024 * 8192 overflows 32-bit unsigned, but is size_t always
> large enough?  Just checking.

The diff is a bit misleading as to what it *actually* changes. It *just*
casts the result to size_t. The arithmetic is performed with longs (thanks
to the "l" in 1024l) and it only overflows 32 bit iff the sizeof() test
verifies that we're at least on 64 bit -- this arithmetic operation is the
same as before the patch. I was fooled by the diff myself (adding another
parenthesis just to add the cast would probably have helped, though).

IMHO this is a good demonstration how a commit message that goes slightly
beyond the necessary can help tons of time by avoiding to let every
reviewer/reader go through the exact same steps of puzzlement.

Ciao,
Dscho
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to