res_pjsip_endpoint_identifier_ip: Fix memory leak of hosts when resolving.
authorJoshua Colp <jcolp@digium.com>
Thu, 26 Jan 2017 13:57:59 +0000 (13:57 +0000)
committerJoshua Colp <jcolp@digium.com>
Thu, 26 Jan 2017 16:59:10 +0000 (10:59 -0600)
This change adds a missing unreference of the hostname when resolving and
also cleans up the iterator.

ASTERISK-26735

Change-Id: Ic012ebaf3d89e714eec340b7b0c5e63c66af857a

res/res_pjsip_endpoint_identifier_ip.c

index 116e2d8..86a5afb 100644 (file)
@@ -323,9 +323,14 @@ static int ip_identify_apply(const struct ast_sorcery *sorcery, void *obj)
                } else if (results == -1) {
                        ast_log(LOG_ERROR, "An error occurred when adding resolution results of '%s' on '%s'\n",
                                current_string, ast_sorcery_object_get_id(obj));
+                       ao2_ref(current_string, -1);
+                       ao2_iterator_destroy(&i);
                        return -1;
                }
+
+               ao2_ref(current_string, -1);
        }
+       ao2_iterator_destroy(&i);
 
        ao2_ref(identify->hosts, -1);
        identify->hosts = NULL;