> On 04 Oct 2016, at 21:33, Junio C Hamano <gits...@pobox.com> wrote:
> 
> larsxschnei...@gmail.com writes:
> 
>> From: Lars Schneider <larsxschnei...@gmail.com>
>> 
>> 
>> +static int packet_write_gently(const int fd_out, const char *buf, size_t 
>> size)
>> +{
>> +    static char packet_write_buffer[LARGE_PACKET_MAX];
>> +    const size_t packet_size = size + 4;
>> +
>> +    if (packet_size > sizeof(packet_write_buffer))
>> +            return error("packet write failed - data exceeds max packet 
>> size");
> 
> Hmph, in the previous round, this used to be "is the size larger
> than sizeof(..) - 4?", which avoided integer overflow issue rather
> nicely and more idiomatic.  If size is near the size_t's max,
> packet_size may wrap around to become very small, and we won't hit
> this error, will we?

You are right. Would the solution below be acceptable?
I would like to keep the `packet_size` variable as it eases the rest
of the function.

 
        const size_t packet_size = size + 4;
 
-       if (packet_size > sizeof(packet_write_buffer))
+       if (size > sizeof(packet_write_buffer) - 4)
                return error("packet write failed - data exceeds max packet 
size");

Thanks,
Lars

Reply via email to