res/res_pjsip_sdp_rtp: Fix leak of local ICE candidates when applying to SDP
authorMatthew Jordan <mjordan@digium.com>
Sun, 8 Feb 2015 17:24:22 +0000 (17:24 +0000)
committerMatthew Jordan <mjordan@digium.com>
Sun, 8 Feb 2015 17:24:22 +0000 (17:24 +0000)
When an SDP is created for an outgoing request/response, the ICE candidates
obtained from the RTP instance are currently leaked. This causes the ao2
container that holds the candidates to never properly be reclaimed when the
RTP instance is destroyed.

This patch properly decrements the ICE candidates' container if it is
successfully obtained.

ASTERISK-24769 #close
Reported by: Matt Jordan
........

Merged revisions 431600 from http://svn.asterisk.org/svn/asterisk/branches/13

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@431601 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_pjsip_sdp_rtp.c

index bc8c748..4cac537 100644 (file)
@@ -396,6 +396,7 @@ static void add_ice_to_stream(struct ast_sip_session *session, struct ast_sip_se
        }
 
        ao2_iterator_destroy(&it_candidates);
+       ao2_ref(candidates, -1);
 }
 
 /*! \brief Function which processes ICE attributes in an audio stream */