This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] fix to malloc checking
- From: James Lemke <jwlemke at codesourcery dot com>
- To: Andreas Schwab <schwab at linux-m68k dot org>
- Cc: <libc-alpha at sourceware dot org>
- Date: Tue, 11 Nov 2014 16:18:50 -0500
- Subject: Re: [PATCH] fix to malloc checking
- Authentication-results: sourceware.org; auth=none
- References: <5462592E dot 9050301 at codesourcery dot com> <87ppctij7h dot fsf at igel dot home>
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