latmdec: Check AudioSpecificConfig length before decoding extradata.
authorAlex Converse <alex.converse@gmail.com>
Wed, 11 Jan 2012 22:03:57 +0000 (14:03 -0800)
committerAlex Converse <alex.converse@gmail.com>
Wed, 11 Jan 2012 22:40:47 +0000 (14:40 -0800)
This is different than a normal get_bits() over read because
decode_audio_specific_config() creates its own GetBitContext.

Fixes Bug 170.

libavcodec/aacdec.c

index b2fc740..ca1a876 100644 (file)
@@ -2363,6 +2363,8 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx,
                                "config not byte aligned.\n", 1);
         return AVERROR_INVALIDDATA;
     }
+    if (asclen <= 0)
+        return AVERROR_INVALIDDATA;
     bits_consumed = decode_audio_specific_config(NULL, avctx, &m4ac,
                                          gb->buffer + (config_start_bit / 8),
                                          asclen, sync_extension);