Check for out of bound writes in the wmavoice decoder.
authorLaurent Aimar <fenrir@videolan.org>
Tue, 27 Sep 2011 21:43:51 +0000 (23:43 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 27 Sep 2011 22:18:38 +0000 (00:18 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/wmavoice.c

index 400d963..b2deda4 100644 (file)
@@ -1880,6 +1880,8 @@ static void copy_bits(PutBitContext *pb,
     rmn_bits = rmn_bytes = get_bits_left(gb);
     if (rmn_bits < nbits)
         return;
+    if (nbits > pb->size_in_bits - put_bits_count(pb))
+        return;
     rmn_bits &= 7; rmn_bytes >>= 3;
     if ((rmn_bits = FFMIN(rmn_bits, nbits)) > 0)
         put_bits(pb, rmn_bits, get_bits(gb, rmn_bits));