diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-12-25 04:15:56 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-01-03 22:32:19 +0100 |
commit | 7c67d9c6fb6d2752c92ad309303e9557cffa0094 (patch) | |
tree | e0d0828a9a72474f0d18b3e5e4463b253dd67ee9 | |
parent | 49db3600059010bbe284b8a2ed215eb561f01118 (diff) | |
download | ffmpeg-7c67d9c6fb6d2752c92ad309303e9557cffa0094.tar.gz |
golomb: Fix infinite loop in svq3_get_ue_golomb()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 964506bb979e8c972833c7421a39f3275d3cd3c0)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/golomb.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/golomb.h b/libavcodec/golomb.h index 14cf05504f..638357b470 100644 --- a/libavcodec/golomb.h +++ b/libavcodec/golomb.h @@ -123,7 +123,7 @@ static inline int svq3_get_ue_golomb(GetBitContext *gb){ }else{ int ret = 1; - while (1) { + do { buf >>= 32 - 8; LAST_SKIP_BITS(re, gb, FFMIN(ff_interleaved_golomb_vlc_len[buf], 8)); @@ -135,7 +135,7 @@ static inline int svq3_get_ue_golomb(GetBitContext *gb){ ret = (ret << 4) | ff_interleaved_dirac_golomb_vlc_code[buf]; UPDATE_CACHE(re, gb); buf = GET_CACHE(re, gb); - } + } while(ret<0x8000000U); CLOSE_READER(re, gb); return ret - 1; |