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:
Richard Mudgett
2013-01-23 00:19:40 +00:00
parent 79b60d9d4b
commit f2c0fc1cb5

View File

@@ -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;