From: Mark Spencer Date: Tue, 28 Dec 2004 16:45:03 +0000 (+0000) Subject: Ignore invalid RTP packets (bug #3030) X-Git-Tag: 1.2.0-beta1~1567 X-Git-Url: http://git.asterisk.org/gitweb/?p=asterisk%2Fasterisk.git;a=commitdiff_plain;h=8bb060d8acaf21557b10b824b242a8e62edf010d;hp=46ffd20c4843140ade61863de6fb74ed779e22e2 Ignore invalid RTP packets (bug #3030) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4570 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/rtp.c b/rtp.c index e97b869..acf67d0 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);