diff options
author | Laurent Aimar <fenrir@videolan.org> | 2011-09-27 23:43:51 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-09-28 00:18:38 +0200 |
commit | e09ae22ab7d9af7f1cbfd2445fa71ad9e7c28ee3 (patch) | |
tree | 2c67fecfe4c22a560f8cd346823e0a2a830ac598 /libavcodec/wmavoice.c | |
parent | 66aae97a60fcd8658f18c484b5af898a48d0e3f9 (diff) | |
download | ffmpeg-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.c | 2 |
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)); |