mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-17 15:29:05 +00:00
Ignore invalid RTP packets (bug #3030)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4570 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
7
rtp.c
7
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);
|
||||
|
||||
Reference in New Issue
Block a user