mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-10 03:48:34 +00:00
Attempt to be more helpful when using a bad ao2 object pointer.
Backport of -r360626 with some enhancements. Put the external obj pointer in the message instead of the internal version. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@379963 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -117,9 +117,16 @@ static inline struct astobj2 *INTERNAL_OBJ(void *user_data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
p = (struct astobj2 *) ((char *) user_data - sizeof(*p));
|
p = (struct astobj2 *) ((char *) user_data - sizeof(*p));
|
||||||
if (AO2_MAGIC != (p->priv_data.magic) ) {
|
if (AO2_MAGIC != p->priv_data.magic) {
|
||||||
ast_log(LOG_ERROR, "bad magic number 0x%x for %p\n", p->priv_data.magic, p);
|
if (p->priv_data.magic) {
|
||||||
p = NULL;
|
ast_log(LOG_ERROR, "bad magic number 0x%x for object %p\n",
|
||||||
|
p->priv_data.magic, user_data);
|
||||||
|
} else {
|
||||||
|
ast_log(LOG_ERROR,
|
||||||
|
"bad magic number for object %p. Object is likely destroyed.\n",
|
||||||
|
user_data);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
|
|||||||
Reference in New Issue
Block a user