From 66bed4cc8468de29adb72ddcda69e4ad40402e65 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Thu, 26 Jan 2017 13:57:59 +0000 Subject: [PATCH] res_pjsip_endpoint_identifier_ip: Fix memory leak of hosts when resolving. 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 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/res/res_pjsip_endpoint_identifier_ip.c b/res/res_pjsip_endpoint_identifier_ip.c index 116e2d8d71..86a5afbdbf 100644 --- a/res/res_pjsip_endpoint_identifier_ip.c +++ b/res/res_pjsip_endpoint_identifier_ip.c @@ -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;