From f4f386dd00e594dc90eb32ae872ae8e22b08d179 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 19 Feb 2012 21:50:18 +0100 Subject: [PATCH] wmalossless: Fix infinite loop. Fixes more of Ticket1000 Signed-off-by: Michael Niedermayer --- libavcodec/wmalosslessdec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c index 79cd5f48eb..b32731f96e 100644 --- a/libavcodec/wmalosslessdec.c +++ b/libavcodec/wmalosslessdec.c @@ -713,8 +713,11 @@ static int decode_channel_residues(WmallDecodeCtx *s, int ch, int tile_size) //av_log(0, 0, "%8d: ", num_logged_tiles++); for(; i < tile_size; i++) { int quo = 0, rem, rem_bits, residue; - while(get_bits1(&s->gb)) + while(get_bits1(&s->gb)) { quo++; + if (get_bits_left(&s->gb) <= 0) + return -1; + } if(quo >= 32) quo += get_bits_long(&s->gb, get_bits(&s->gb, 5) + 1);