mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2026-05-09 12:32:56 +02:00
avformat/rtpdec_mpeg4: reject zero-length AU header sections
Reject AU header sections with a signaled length of zero in
rtp_parse_mp4_au().
The AU-headers-length field specifies the length in bits of the AU header
section that immediately follows. A zero-length section is not useful input
for this parser and can lead to invalid downstream state, so reject it
up front together with oversized values.
*Vulnerability reported by Zhenpeng (Leo) Lin at depthfirst*
*Patch validated by Zheng Yu at depthfirst*
Fixes: OOB read
(cherry picked from commit 8010aa2193)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
committed by
Michael Niedermayer
parent
7e0fac3cbc
commit
856d22943b
@@ -132,7 +132,7 @@ static int rtp_parse_mp4_au(PayloadContext *data, const uint8_t *buf, int len)
|
||||
length in bits */
|
||||
au_headers_length = AV_RB16(buf);
|
||||
|
||||
if (au_headers_length > RTP_MAX_PACKET_LENGTH)
|
||||
if (au_headers_length == 0 || au_headers_length > RTP_MAX_PACKET_LENGTH)
|
||||
return -1;
|
||||
|
||||
data->au_headers_length_bytes = (au_headers_length + 7) / 8;
|
||||
|
||||
Reference in New Issue
Block a user