[Asterisk-code-review] pjsip configuration: Fix leak in persistent endpoint update ... (asterisk[master])

Corey Farrell asteriskteam at digium.com
Sat May 30 20:35:26 CDT 2015


Corey Farrell has uploaded a new change for review.

  https://gerrit.asterisk.org/551

Change subject: pjsip_configuration: Fix leak in persistent_endpoint_update_state.
......................................................................

pjsip_configuration: Fix leak in persistent_endpoint_update_state.

The loop to find the first available contact of an endpoint grabbed
contact from the iterator, then checked for offline state.  This
caused the first contact after the state was found to leak a reference.

ASTERISK-25141 #close

Change-Id: Id0f1d87410fc63742db0594eb4b18b36e99aec08
---
M res/res_pjsip/pjsip_configuration.c
1 file changed, 1 insertion(+), 2 deletions(-)


  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/51/551/1

diff --git a/res/res_pjsip/pjsip_configuration.c b/res/res_pjsip/pjsip_configuration.c
index 59598ec..4ce7735 100644
--- a/res/res_pjsip/pjsip_configuration.c
+++ b/res/res_pjsip/pjsip_configuration.c
@@ -103,8 +103,7 @@
 	contacts = ast_sip_location_retrieve_contacts_from_aor_list(persistent->aors);
 	if (contacts) {
 		i = ao2_iterator_init(contacts, 0);
-		while ((contact = ao2_iterator_next(&i))
-			&& state == AST_ENDPOINT_OFFLINE) {
+		while (state == AST_ENDPOINT_OFFLINE && (contact = ao2_iterator_next(&i))) {
 			struct ast_sip_contact_status *contact_status;
 			const char *contact_id = ast_sorcery_object_get_id(contact);
 

-- 
To view, visit https://gerrit.asterisk.org/551
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id0f1d87410fc63742db0594eb4b18b36e99aec08
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Owner: Corey Farrell <git at cfware.com>



More information about the asterisk-code-review mailing list