summaryrefslogtreecommitdiff
path: root/libavcodec/wmavoice.c
diff options
context:
space:
mode:
authorLaurent Aimar <fenrir@videolan.org>2011-09-27 23:43:51 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-09-28 00:18:38 +0200
commite09ae22ab7d9af7f1cbfd2445fa71ad9e7c28ee3 (patch)
tree2c67fecfe4c22a560f8cd346823e0a2a830ac598 /libavcodec/wmavoice.c
parent66aae97a60fcd8658f18c484b5af898a48d0e3f9 (diff)
downloadffmpeg-e09ae22ab7d9af7f1cbfd2445fa71ad9e7c28ee3.tar.gz
Check for out of bound writes in the wmavoice decoder.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/wmavoice.c')
-rw-r--r--libavcodec/wmavoice.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c
index 400d96386b..b2deda4ad8 100644
--- a/libavcodec/wmavoice.c
+++ b/libavcodec/wmavoice.c
@@ -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));