Astobj2: Ensure all calls to __adjust_lock pass a valid object.

__adjust_lock doesn't check for invalid objects, and doesn't have an
appropriate return value for invalid objects.  Most callers of
__adjust_lock pass objects that have already been confirmed valid,
this change adds checks before the remaining calls.

ASTERISK-24997 #close
Reported by: Corey Farrell

Change-Id: I669100f87937cc3f867cec56a27ae9c01292908f
This commit is contained in:
Corey Farrell
2015-04-22 16:17:53 -04:00
parent 0722e11f26
commit c231c85ea4
3 changed files with 10 additions and 0 deletions

View File

@@ -510,6 +510,12 @@ struct ao2_iterator ao2_iterator_init(struct ao2_container *c, int flags)
void ao2_iterator_restart(struct ao2_iterator *iter)
{
if (!is_ao2_object(iter->c)) {
ast_log(LOG_ERROR, "Iterator container is not valid.\n");
ast_assert(0);
return;
}
/* Release the last container node reference if we have one. */
if (iter->last_node) {
enum ao2_lock_req orig_lock;