mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
r24627: merge from SAMBA_4_0:
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
This commit is contained in:
parent
102bb0fc17
commit
ddbe971030
@ -115,6 +115,16 @@ struct talloc_chunk {
|
||||
#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 @@ static inline struct talloc_chunk *talloc_chunk_from_ptr(const void *ptr)
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user