]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_pjsip_sdp_rtp: Fix ICE candidates leak.
authorJoshua Colp <jcolp@digium.com>
Mon, 24 Jun 2019 10:08:06 +0000 (10:08 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 24 Jun 2019 10:08:06 +0000 (10:08 +0000)
Given the non-default configuration of enabling ICE support on an
endpoint that does not result in an ICE negotiation occurring the
ICE candidates would be leaked.

This change makes it so that the ICE candidates are only retrieved
if ICE negotiation is occurring.

ASTERISK-28460

Change-Id: I7b3f76f031c41fb8a3dc3ef1a84b77e2a8cb969f

res/res_pjsip_sdp_rtp.c

index 7c7040e35b4a284afcab7d10b4836ac8fc209885..cc53913786770a6b2029b68eacd97378f5d8511d 100644 (file)
@@ -527,11 +527,7 @@ static void add_ice_to_stream(struct ast_sip_session *session, struct ast_sip_se
        struct ast_rtp_engine_ice_candidate *candidate;
 
        if (!session->endpoint->media.rtp.ice_support || !(ice = ast_rtp_instance_get_ice(session_media->rtp)) ||
-               !(candidates = ice->get_local_candidates(session_media->rtp))) {
-               return;
-       }
-
-       if (!session_media->remote_ice) {
+               !session_media->remote_ice || !(candidates = ice->get_local_candidates(session_media->rtp))) {
                return;
        }