Module: libav
Branch: release/0.8
Commit: d9ffa2aca1e438a44d41f3ef3aeb8ef396bcd7b0

Author:    Justin Ruggles <[email protected]>
Committer: Anton Khirnov <[email protected]>
Date:      Mon Jun 11 10:29:57 2012 -0400

golomb: check remaining bits during unary decoding in get_ur_golomb_jpegls()

Fixes infinite loop in FLAC decoding in case of a truncated bitstream due to
the safe bitstream reader returning 0's at the end.

Fixes Bug 310.

CC:[email protected]
(cherry picked from commit 4795362660a526a38a7a60f06826bce97a092b59)

Signed-off-by: Anton Khirnov <[email protected]>

---

 libavcodec/golomb.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/libavcodec/golomb.h b/libavcodec/golomb.h
index 1712540..b6b8cc8 100644
--- a/libavcodec/golomb.h
+++ b/libavcodec/golomb.h
@@ -301,7 +301,7 @@ static inline int get_ur_golomb_jpegls(GetBitContext *gb, 
int k, int limit, int
         return buf;
     }else{
         int i;
-        for (i = 0; i < limit && SHOW_UBITS(re, gb, 1) == 0; i++) {
+        for (i = 0; i < limit && SHOW_UBITS(re, gb, 1) == 0 && 
HAVE_BITS_REMAINING(re, gb); i++) {
             LAST_SKIP_BITS(re, gb, 1);
             UPDATE_CACHE(re, gb);
         }

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to