libavcodec/mpegaudiodecheader.h : detect reserved mpeg id
authorKarsten Otto <ottoka@posteo.de>
Sun, 8 Jul 2018 10:26:10 +0000 (12:26 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Mon, 9 Jul 2018 01:25:53 +0000 (03:25 +0200)
Check the MPEG version ID for the reserved bit pattern 01, and abort the
header check in that case. This reduces the chance of misinterpreting
arbitrary data as a valid header, and prevents resulting audio artifacts.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/mpegaudiodecheader.h

index 1cb9216..ed99612 100644 (file)
@@ -62,6 +62,9 @@ static inline int ff_mpa_check_header(uint32_t header){
     /* header */
     if ((header & 0xffe00000) != 0xffe00000)
         return -1;
+    /* version check */
+    if ((header & (3<<19)) == 1)
+        return -1;
     /* layer check */
     if ((header & (3<<17)) == 0)
         return -1;