Author: metze Date: 2007-08-22 12:44:22 +0000 (Wed, 22 Aug 2007) New Revision: 24626
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24626 Log: as TALLOC_ABORT() is defined to abort() by default wrap it into a function so that the function name in the backtrace shows what happens. metze Modified: branches/SAMBA_4_0/source/lib/talloc/talloc.c Changeset: Modified: branches/SAMBA_4_0/source/lib/talloc/talloc.c =================================================================== --- branches/SAMBA_4_0/source/lib/talloc/talloc.c 2007-08-22 12:28:58 UTC (rev 24625) +++ branches/SAMBA_4_0/source/lib/talloc/talloc.c 2007-08-22 12:44:22 UTC (rev 24626) @@ -115,6 +115,16 @@ #define TC_HDR_SIZE ((sizeof(struct talloc_chunk)+15)&~15) #define TC_PTR_FROM_CHUNK(tc) ((void *)(TC_HDR_SIZE + (char*)tc)) +static void talloc_abort_double_free(void) +{ + TALLOC_ABORT("Bad talloc magic value - double free"); +} + +static void talloc_abort_unknown_value(void) +{ + TALLOC_ABORT("Bad talloc magic value - unknown value"); +} + /* panic if we get a bad magic value */ static inline struct talloc_chunk *talloc_chunk_from_ptr(const void *ptr) { @@ -122,9 +132,9 @@ struct talloc_chunk *tc = discard_const_p(struct talloc_chunk, pp - TC_HDR_SIZE); if (unlikely((tc->flags & (TALLOC_FLAG_FREE | ~0xF)) != TALLOC_MAGIC)) { if (tc->flags & TALLOC_FLAG_FREE) { - TALLOC_ABORT("Bad talloc magic value - double free"); + talloc_abort_double_free(); } else { - TALLOC_ABORT("Bad talloc magic value - unknown value"); + talloc_abort_unknown_value(); } } return tc;