瀏覽代碼

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>
Michael Niedermayer 9 年之前
父節點
當前提交
c72fa43234
共有 1 個文件被更改,包括 4 次插入0 次删除
  1. 4 0
      libavcodec/get_bits.h

+ 4 - 0
libavcodec/get_bits.h

@@ -369,6 +369,10 @@ static inline uint64_t get_bits64(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);
 }