avcodec/get_bits: Fix get_sbits_long(0)

Fixes undefined behavior
Fixes: 640889-media

Found-by: Matt Wolenetz <wolenetz@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2016-12-03 23:44:56 +01:00
parent 6567c59c49
commit c72fa43234

View File

@ -369,6 +369,10 @@ static inline uint64_t get_bits64(GetBitContext *s, int n)
*/ */
static inline int get_sbits_long(GetBitContext *s, int n) static inline int get_sbits_long(GetBitContext *s, int n)
{ {
// sign_extend(x, 0) is undefined
if (!n)
return 0;
return sign_extend(get_bits_long(s, n), n); return sign_extend(get_bits_long(s, n), n);
} }