[PATCH] fix to malloc checking

James Lemke jwlemke@codesourcery.com
Tue Nov 11 21:18:00 GMT 2014


On 11/11/2014 03:19 PM, Andreas Schwab wrote:
>> -      if (c <= 0 || size < (c + 2 * SIZE_SZ))
>> >-        {
>> >-          malloc_printerr (check_action, "malloc_check_get_size: memory corruption",
>> >-                           chunk2mem (p));
>> >-          return 0;
>> >-        }
>> >+      if (size - c <= 2 * SIZE_SZ)
 >> >+	     break;
 >
> If c > size then the difference wraps around.

That would indicate memory corruption and the loop would terminate,
which it should.

However, if you think it's clearer, I can re-write the 3 occurrences of
this test as:
    if (size <= c + 2 * SIZE_SZ)

Otherwise OK?

-- 
Jim Lemke, GNU Tools Sourcerer
Mentor Graphics / CodeSourcery



More information about the Libc-alpha mailing list