diff options
author | Corey Farrell <git@cfware.com> | 2015-04-22 16:17:53 -0400 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2015-04-22 20:44:56 -0400 |
commit | 73efb093b8cd1a81cee5f9fb0120ac7f74a82ea4 (patch) | |
tree | e83bcf6fd66809da64bcc6b266341360bb411299 /main/astobj2_container.c | |
parent | b0e929219b40f134a925d68dbd764910e3389f3e (diff) |
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
Diffstat (limited to 'main/astobj2_container.c')
-rw-r--r-- | main/astobj2_container.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/main/astobj2_container.c b/main/astobj2_container.c index dc6f5e5c5..5a27a0ae5 100644 --- a/main/astobj2_container.c +++ b/main/astobj2_container.c @@ -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; |