]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_rtp_asterisk.c: Check RTP packet version earlier.
authorRichard Mudgett <rmudgett@digium.com>
Fri, 25 Aug 2017 22:05:06 +0000 (17:05 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 5 Sep 2017 17:12:05 +0000 (12:12 -0500)
Change-Id: Ic6493a7d79683f3e5845dff1cee49445fd5a0adf

res/res_rtp_asterisk.c

index b6cef97d30bdfdfdf53a6964474aa98dc7233400..77027aafe2c05cbd560a19e02f937844112f33cc 100644 (file)
@@ -5070,6 +5070,11 @@ static struct ast_frame *ast_rtp_read(struct ast_rtp_instance *instance, int rtc
                return &ast_null_frame;
        }
 
+       /* If the version is not what we expected by this point then just drop the packet */
+       if (version != 2) {
+               return &ast_null_frame;
+       }
+
        /* If strict RTP protection is enabled see if we need to learn the remote address or if we need to drop the packet */
        if (rtp->strict_rtp_state == STRICT_RTP_LEARN) {
                if (!ast_sockaddr_cmp(&rtp->strict_rtp_address, &addr)) {
@@ -5116,11 +5121,6 @@ static struct ast_frame *ast_rtp_read(struct ast_rtp_instance *instance, int rtc
                }
        }
 
-       /* If the version is not what we expected by this point then just drop the packet */
-       if (version != 2) {
-               return &ast_null_frame;
-       }
-
        /* Pull out the various other fields we will need */
        payloadtype = (seqno & 0x7f0000) >> 16;
        padding = seqno & (1 << 29);