]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_rtp_asterisk.c: Initialize ourip passed to ast_find_ourip(). 56/4656/1
authorRichard Mudgett <rmudgett@digium.com>
Wed, 21 Dec 2016 23:55:48 +0000 (17:55 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 22 Dec 2016 18:16:20 +0000 (12:16 -0600)
We access uninitialized memory when the 'ourip' parameter does not
have an initial guess to our IP address.

ASTERISK-26672

Change-Id: I35507ea1ad7455d2be188f6ccdd4add7bd150e15

res/res_rtp_asterisk.c

index 1ae18fed3500c6743c7656287abe90a788c6406f..054b0b658f544c10d901d056fb4a90868af1ec17 100644 (file)
@@ -4915,9 +4915,11 @@ static void ast_rtp_prop_set(struct ast_rtp_instance *instance, enum ast_rtp_pro
                        ast_sockaddr_set_port(&rtp->rtcp->us,
                                              ast_sockaddr_port(&rtp->rtcp->us) + 1);
 
+                       ast_sockaddr_copy(&local_addr, &rtp->rtcp->us);
                        if (!ast_find_ourip(&local_addr, &rtp->rtcp->us, 0)) {
                                ast_sockaddr_set_port(&local_addr, ast_sockaddr_port(&rtp->rtcp->us));
                        } else {
+                               /* Failed to get local address reset to use default. */
                                ast_sockaddr_copy(&local_addr, &rtp->rtcp->us);
                        }