From: Bart Van Assche Date: Thu, 2 Sep 2010 10:24:49 +0000 (+0000) Subject: Improved support for VALGRIND_MALLOCLIKE_BLOCK in memcheck: error X-Git-Tag: svn/VALGRIND_3_6_0~137 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6de75283c09a16ab3626cb0dee45d99715742fab;p=thirdparty%2Fvalgrind.git Improved support for VALGRIND_MALLOCLIKE_BLOCK in memcheck: error messages printed for client-annotated blocks do now include a correct address description. Closes #237371. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11320 --- diff --git a/memcheck/mc_malloc_wrappers.c b/memcheck/mc_malloc_wrappers.c index 4466aa5256..8b0ced6826 100644 --- a/memcheck/mc_malloc_wrappers.c +++ b/memcheck/mc_malloc_wrappers.c @@ -120,7 +120,8 @@ static void add_to_freed_queue ( MC_Chunk* mc ) mc1->next = NULL; /* just paranoia */ /* free MC_Chunk */ - VG_(cli_free) ( (void*)(mc1->data) ); + if (MC_AllocCustom != mc1->allockind) + VG_(cli_free) ( (void*)(mc1->data) ); VG_(free) ( mc1 ); } } @@ -290,14 +291,10 @@ void die_and_free_mem ( ThreadId tid, MC_Chunk* mc, SizeT rzB ) accessible with a client request... */ MC_(make_mem_noaccess)( mc->data-rzB, mc->szB + 2*rzB ); - /* Put it out of harm's way for a while, if not from a client request */ - if (MC_AllocCustom != mc->allockind) { - /* Record where freed */ - mc->where = VG_(record_ExeContext) ( tid, 0/*first_ip_delta*/ ); - add_to_freed_queue ( mc ); - } else { - VG_(free) ( mc ); - } + /* Record where freed */ + mc->where = VG_(record_ExeContext) ( tid, 0/*first_ip_delta*/ ); + /* Put it out of harm's way for a while */ + add_to_freed_queue ( mc ); } void MC_(handle_free) ( ThreadId tid, Addr p, UInt rzB, MC_AllocKind kind )