|
From: <sv...@va...> - 2009-06-01 18:37:04
|
Author: bart
Date: 2009-06-01 19:36:59 +0100 (Mon, 01 Jun 2009)
New Revision: 10191
Log:
Fixed a bug in DRD's malloc wrappers.
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-01 10:49:38 UTC (rev 10190)
+++ trunk/drd/drd_main.c 2009-06-01 18:36:59 UTC (rev 10191)
@@ -274,7 +274,7 @@
static __inline__
void drd_start_using_mem(const Addr a1, const SizeT len)
{
- tl_assert(a1 < a1 + len);
+ tl_assert(a1 <= a1 + len);
if (UNLIKELY(DRD_(any_address_is_traced)()))
{
Modified: trunk/drd/drd_malloc_wrappers.c
===================================================================
--- trunk/drd/drd_malloc_wrappers.c 2009-06-01 10:49:38 UTC (rev 10190)
+++ trunk/drd/drd_malloc_wrappers.c 2009-06-01 18:36:59 UTC (rev 10191)
@@ -94,6 +94,7 @@
}
if (is_zeroed) VG_(memset)((void*)p, 0, size);
+ tl_assert(p <= p + size);
DRD_(malloclike_block)(tid, p, size);
return (void*)p;
@@ -107,7 +108,7 @@
{
tl_assert(p);
- s_start_using_mem_callback(p, p + size, 0/*ec_uniq*/);
+ s_start_using_mem_callback(p, size, 0/*ec_uniq*/);
// Only update this stat if allocation succeeded.
s_cmalloc_bs_mallocd += size;
@@ -220,8 +221,7 @@
// Allocate a new chunk.
mc = create_chunk(tid, a_new, new_size);
- s_start_using_mem_callback(a_new, a_new + new_size,
- 0/*ec_uniq*/);
+ s_start_using_mem_callback(a_new, new_size, 0/*ec_uniq*/);
}
else
{
|