Blame SOURCES/0001-CVE-2019-9232-Fix-OOB-memory-access-on-fuzzed-data.patch

44b363
From 953b0b85f8462efeac179341c912617c1bae8d4c Mon Sep 17 00:00:00 2001
44b363
From: Wim Taymans <wtaymans@redhat.com>
44b363
Date: Wed, 25 Mar 2020 13:39:30 +0100
44b363
Subject: [PATCH 1/2] CVE-2019-9232: Fix OOB memory access on fuzzed data
44b363
44b363
vp8_norm table has 256 elements while index to it can be higher on
44b363
fuzzed data. Typecasting it to unsigned char will ensure valid range and
44b363
will trigger proper error later. Also declaring "shift" as unsigned char to
44b363
avoid UB sanitizer warning
44b363
44b363
BUG=b/122373286,b/122373822,b/122371119
44b363
---
44b363
 vp8/decoder/dboolhuff.h | 2 +-
44b363
 vpx_dsp/bitreader.h     | 2 +-
44b363
 2 files changed, 2 insertions(+), 2 deletions(-)
44b363
44b363
diff --git a/vp8/decoder/dboolhuff.h b/vp8/decoder/dboolhuff.h
44b363
index 04c027cd7..f3b080509 100644
44b363
--- a/vp8/decoder/dboolhuff.h
44b363
+++ b/vp8/decoder/dboolhuff.h
44b363
@@ -76,7 +76,7 @@ static int vp8dx_decode_bool(BOOL_DECODER *br, int probability) {
44b363
   }
44b363
 
44b363
   {
44b363
-    register int shift = vp8_norm[range];
44b363
+    register unsigned char shift = vp8_norm[(unsigned char)range];
44b363
     range <<= shift;
44b363
     value <<= shift;
44b363
     count -= shift;
44b363
diff --git a/vpx_dsp/bitreader.h b/vpx_dsp/bitreader.h
44b363
index 6ee2a5863..4b87e986c 100644
44b363
--- a/vpx_dsp/bitreader.h
44b363
+++ b/vpx_dsp/bitreader.h
44b363
@@ -94,7 +94,7 @@ static INLINE int vpx_read(vpx_reader *r, int prob) {
44b363
   }
44b363
 
44b363
   {
44b363
-    register int shift = vpx_norm[range];
44b363
+    register unsigned char shift = vpx_norm[(unsigned char)range];
44b363
     range <<= shift;
44b363
     value <<= shift;
44b363
     count -= shift;
44b363
-- 
44b363
2.25.1
44b363