avcodec/golomb: fix reading huge signed rice golomb values
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 17 May 2015 17:08:38 +0000 (19:08 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 17 May 2015 17:36:38 +0000 (19:36 +0200)
No testcase is known, nor any case where such huge values would occur

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/golomb.h

index 134e6ac..d8c1a41 100644 (file)
@@ -367,7 +367,7 @@ static inline int get_ur_golomb_jpegls(GetBitContext *gb, int k, int limit,
 static inline int get_sr_golomb(GetBitContext *gb, int k, int limit,
                                 int esc_len)
 {
-    int v = get_ur_golomb(gb, k, limit, esc_len);
+    unsigned v = get_ur_golomb(gb, k, limit, esc_len);
     return (v >> 1) ^ -(v & 1);
 }
 
@@ -377,7 +377,7 @@ static inline int get_sr_golomb(GetBitContext *gb, int k, int limit,
 static inline int get_sr_golomb_flac(GetBitContext *gb, int k, int limit,
                                      int esc_len)
 {
-    int v = get_ur_golomb_jpegls(gb, k, limit, esc_len);
+    unsigned v = get_ur_golomb_jpegls(gb, k, limit, esc_len);
     return (v >> 1) ^ -(v & 1);
 }