summaryrefslogtreecommitdiff
path: root/libavcodec/mpegaudiodecheader.h
diff options
context:
space:
mode:
authorKarsten Otto <ottoka@posteo.de>2018-07-08 12:26:10 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2018-07-09 03:25:53 +0200
commit3bf39f2aeff0defcc11454c497b6ea0ffbcd17ca (patch)
treedd3aaafefeb14562518c551a5a71532c70d8e52c /libavcodec/mpegaudiodecheader.h
parenteb776a16ea3c02096ee4eff2f12da0f03cb03ef3 (diff)
libavcodec/mpegaudiodecheader.h : detect reserved mpeg id
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>
Diffstat (limited to 'libavcodec/mpegaudiodecheader.h')
-rw-r--r--libavcodec/mpegaudiodecheader.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/mpegaudiodecheader.h b/libavcodec/mpegaudiodecheader.h
index 1cb9216461..ed9961250a 100644
--- a/libavcodec/mpegaudiodecheader.h
+++ b/libavcodec/mpegaudiodecheader.h
@@ -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;