avformat/mp3dec: fix msan warning when verifying mpa header
authorChris Cunningham <chcunningham@chromium.org>
Tue, 22 Nov 2016 21:54:50 +0000 (13:54 -0800)
committerMichael Niedermayer <michael@niedermayer.cc>
Thu, 15 Dec 2016 03:36:28 +0000 (04:36 +0100)
MPEG Audio frame header must be 4 bytes. If we fail to read
4 bytes bail early to avoid Use-of-uninitialized-value msan error.
Reference https://crbug.com/666874.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/mp3dec.c

index 56c7f8c..099ca57 100644 (file)
@@ -457,7 +457,8 @@ static int check(AVIOContext *pb, int64_t pos, uint32_t *ret_header)
         return CHECK_SEEK_FAILED;
 
     ret = avio_read(pb, &header_buf[0], 4);
-    if (ret < 0)
+    /* We should always find four bytes for a valid mpa header. */
+    if (ret < 4)
         return CHECK_SEEK_FAILED;
 
     header = AV_RB32(&header_buf[0]);