This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] fix to malloc checking


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]