mirror of
https://github.com/librempeg/librempeg
synced 2024-11-23 11:39:47 +00:00
lavf/mp3enc: make sure the header is valid before writing audio pkt.
An invalid header can lead avpriv_mpegaudio_decode_header() to overread and/or div by zero.
This commit is contained in:
parent
ff3b59c848
commit
2dd0da787c
@ -262,8 +262,14 @@ static int mp3_write_audio_packet(AVFormatContext *s, AVPacket *pkt)
|
||||
if (pkt->data && pkt->size >= 4) {
|
||||
MPADecodeHeader c;
|
||||
int av_unused base;
|
||||
uint32_t head = AV_RB32(pkt->data);
|
||||
|
||||
avpriv_mpegaudio_decode_header(&c, AV_RB32(pkt->data));
|
||||
if (ff_mpa_check_header(head) < 0) {
|
||||
av_log(s, AV_LOG_WARNING, "Audio packet of size %d (starting with %08X...) "
|
||||
"is invalid, writing it anyway.\n", pkt->size, head);
|
||||
return ff_raw_write_packet(s, pkt);
|
||||
}
|
||||
avpriv_mpegaudio_decode_header(&c, head);
|
||||
|
||||
if (!mp3->initial_bitrate)
|
||||
mp3->initial_bitrate = c.bit_rate;
|
||||
|
Loading…
Reference in New Issue
Block a user