summaryrefslogtreecommitdiff
path: root/libavcodec/4xm.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-06-30 01:28:25 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-06-30 01:35:22 +0200
commit13c56e9a9cf18f33bcbc2dc1a5cf2a5f98ca9702 (patch)
tree2838419c98b51fbfaae7a9bea293794bf7c79ba2 /libavcodec/4xm.c
parent6d6eabd399eb20b69d10234ef746f2d3d4c72dcb (diff)
4xm: check for invalid zero ac coeffs
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/4xm.c')
-rw-r--r--libavcodec/4xm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/4xm.c b/libavcodec/4xm.c
index 3e0e681331..dc84e96953 100644
--- a/libavcodec/4xm.c
+++ b/libavcodec/4xm.c
@@ -525,7 +525,12 @@ static int decode_i_block(FourXContext *f, int16_t *block)
if (code == 0xf0) {
i += 16;
} else {
- level = get_xbits(&f->gb, code & 0xf);
+ if (code & 0xf) {
+ level = get_xbits(&f->gb, code & 0xf);
+ } else {
+ av_log(f->avctx, AV_LOG_ERROR, "0 coeff\n");
+ return AVERROR_INVALIDDATA;
+ }
i += code >> 4;
if (i >= 64) {
av_log(f->avctx, AV_LOG_ERROR, "run %d oveflow\n", i);