From 8bb060d8acaf21557b10b824b242a8e62edf010d Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Tue, 28 Dec 2004 16:45:03 +0000
Subject: [PATCH] Ignore invalid RTP packets (bug #3030)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4570 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 rtp.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/rtp.c b/rtp.c
index e97b8690b1..acf67d081e 100755
--- a/rtp.c
+++ b/rtp.c
@@ -427,6 +427,7 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp)
 	struct sockaddr_in sin;
 	int len;
 	unsigned int seqno;
+	int version;
 	int payloadtype;
 	int hdrlen = 12;
 	int mark;
@@ -477,6 +478,12 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp)
 
 	/* Get fields */
 	seqno = ntohl(rtpheader[0]);
+
+	/* Check RTP version */
+	version = (seqno & 0xC0000000) >> 30;
+	if (version != 2)
+		return &null_frame;
+	
 	payloadtype = (seqno & 0x7f0000) >> 16;
 	mark = seqno & (1 << 23);
 	ext = seqno & (1 << 28);
-- 
GitLab