|
From: <sv...@va...> - 2009-06-09 11:12:14
|
Author: bart
Date: 2009-06-09 12:12:07 +0100 (Tue, 09 Jun 2009)
New Revision: 10282
Log:
Fixed bug in DRD's realloc() wrapper.
Modified:
trunk/drd/drd_main.c
trunk/drd/drd_malloc_wrappers.c
Modified: trunk/drd/drd_main.c
===================================================================
--- trunk/drd/drd_main.c 2009-06-09 00:50:45 UTC (rev 10281)
+++ trunk/drd/drd_main.c 2009-06-09 11:12:07 UTC (rev 10282)
@@ -318,7 +318,7 @@
{
const Addr a2 = a1 + len;
- tl_assert(a1 < a2);
+ tl_assert(a1 <= a2);
if (UNLIKELY(DRD_(any_address_is_traced)()))
{
Modified: trunk/drd/drd_malloc_wrappers.c
===================================================================
--- trunk/drd/drd_malloc_wrappers.c 2009-06-09 00:50:45 UTC (rev 10281)
+++ trunk/drd/drd_malloc_wrappers.c 2009-06-09 11:12:07 UTC (rev 10282)
@@ -198,7 +198,7 @@
else if (old_size > new_size)
{
/* new size is smaller */
- s_stop_using_mem_callback(mc->data + new_size, old_size);
+ s_stop_using_mem_callback(mc->data + new_size, old_size - new_size);
mc->size = new_size;
mc->where = VG_(record_ExeContext)(tid, 0);
p_new = p_old;
|