From: Richard Mudgett Date: Fri, 25 Aug 2017 22:05:06 +0000 (-0500) Subject: res_rtp_asterisk.c: Check RTP packet version earlier. X-Git-Tag: 14.7.0-rc1~68^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d8c40659f6ad771ec105e225f411d1d5436321d;p=thirdparty%2Fasterisk.git res_rtp_asterisk.c: Check RTP packet version earlier. Change-Id: Ic6493a7d79683f3e5845dff1cee49445fd5a0adf --- diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index fa0baf21ad..acc61c7e52 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -5069,6 +5069,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)) { @@ -5115,11 +5120,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);