summaryrefslogtreecommitdiff
path: root/libavcodec/wmalosslessdec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-04-13 07:40:53 -0700
committerMartin Storsjö <martin@martin.st>2012-04-13 23:13:03 +0300
commit680097cb6d6b5905fe74c274ee27cb8eebb1513f (patch)
tree6ab2cba2c897065661b5d13ee066c123111939db /libavcodec/wmalosslessdec.c
parentaccea4d9d8ef4a51a02653568118eb2862bf79cc (diff)
WMAL: Do not try to read rawpcm coefficients if bits is invalid
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec/wmalosslessdec.c')
-rw-r--r--libavcodec/wmalosslessdec.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c
index 4eb9ebecea..feea6efa11 100644
--- a/libavcodec/wmalosslessdec.c
+++ b/libavcodec/wmalosslessdec.c
@@ -936,6 +936,11 @@ static int decode_subframe(WmallDecodeCtx *s)
if (rawpcm_tile) {
int bits = s->bits_per_sample - padding_zeroes;
+ if (bits <= 0) {
+ av_log(s->avctx, AV_LOG_ERROR,
+ "Invalid number of padding bits in raw PCM tile\n");
+ return AVERROR_INVALIDDATA;
+ }
av_dlog(s->avctx, "RAWPCM %d bits per sample. "
"total %d bits, remain=%d\n", bits,
bits * s->num_channels * subframe_len, get_bits_count(&s->gb));