]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Merged r10191 and r10242 from trunk: fixed a bug in DRD's malloc wrappers that caused...
authorBart Van Assche <bvanassche@acm.org>
Thu, 4 Jun 2009 09:59:28 +0000 (09:59 +0000)
committerBart Van Assche <bvanassche@acm.org>
Thu, 4 Jun 2009 09:59:28 +0000 (09:59 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_4_BRANCH@10243

drd/drd_main.c
drd/drd_malloc_wrappers.c
drd/drd_malloc_wrappers.h

index 54d2d9cc24df3adf3ff0d6ae13bee0f3fa3a146f..0dc981cc10040919fc914d96930aae6786a4ab4c 100644 (file)
@@ -452,7 +452,7 @@ static void drd_post_mem_write(const CorePart part,
 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()))
   {
index 7e566047cea27a4f89f6cdcfee8b74c44b4a0926..4866d3f095441941a1f8960848b588aeeb186b15 100644 (file)
@@ -100,7 +100,9 @@ void* drd_new_block(ThreadId tid,
     return NULL;
   }
   if (is_zeroed) VG_(memset)((void*)p, 0, size);
-  s_start_using_mem_callback(p, p + size, 0/*ec_uniq*/);
+
+  tl_assert(p <= p + size);
+  s_start_using_mem_callback(p, size, 0/*ec_uniq*/);
 
   // Only update this stat if allocation succeeded.
   cmalloc_bs_mallocd += size;
@@ -211,7 +213,7 @@ void* drd_realloc(ThreadId tid, void* p_old, SizeT new_size)
 
       // Allocate a new chunk.
       mc = create_DRD_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
     {
index c23154afc0ddf76771c18f9263f4c81e4e16a869..e54312967755686b66c09a88ae8797ab72b0d724 100644 (file)
@@ -30,8 +30,8 @@
 #include "pub_tool_execontext.h" // ExeContext
 
 
-typedef void (*StartUsingMem)(const Addr a1, const Addr a2, UInt ec_uniq);
-typedef void (*StopUsingMem)(const Addr a1, const Addr a2);
+typedef void (*StartUsingMem)(const Addr a1, const SizeT len, UInt ec_uniq);
+typedef void (*StopUsingMem)(const Addr a1, const SizeT len);
 
 
 void drd_register_malloc_wrappers(const StartUsingMem start_using_mem_callback,