[FFmpeg-devel] [PATCH] libavcodec/mpegaudiodecheader.c : prevent reserved id misinterpretation
Karsten Otto
ottoka at posteo.de
Sat Jul 7 23:29:11 EEST 2018
Check the MPEG version ID for the reserved bit pattern 01, and abort header
parsing in that case. This reduces the chance of misinterpreting arbitrary
data as a valid frame start, and prevents the resulting audio artifacts.
---
libavcodec/mpegaudiodecheader.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/libavcodec/mpegaudiodecheader.c b/libavcodec/mpegaudiodecheader.c
index 6cc79f18b5..23029f186a 100644
--- a/libavcodec/mpegaudiodecheader.c
+++ b/libavcodec/mpegaudiodecheader.c
@@ -46,10 +46,11 @@ int avpriv_mpegaudio_decode_header(MPADecodeHeader *s, uint32_t header)
if (header & (1<<20)) {
s->lsf = (header & (1<<19)) ? 0 : 1;
mpeg25 = 0;
- } else {
+ } else if (!(header & (1<<19))) {
s->lsf = 1;
mpeg25 = 1;
- }
+ } else
+ return -1; // reserved id
s->layer = 4 - ((header >> 17) & 3);
/* extract frequency */
--
2.14.3 (Apple Git-98)
More information about the ffmpeg-devel
mailing list