]> granicus.if.org Git - libvpx/commitdiff
vp9,read_inter_block_mode_info: quiet msan warning m56-2924
authorJames Zern <jzern@google.com>
Tue, 22 Nov 2016 02:20:33 +0000 (18:20 -0800)
committerJames Zern <jzern@google.com>
Fri, 6 Jan 2017 22:40:13 +0000 (14:40 -0800)
best_sub8x8[1] won't be used meaningfully when is_compound is false, but
may trigger an msan warning as the value is copied around and later
clamped.

BUG=667044

Change-Id: Icc24c3b72cdb550bebea44d4aaa4ff8bf3fbab56
(cherry picked from commit cb22359d027bc44cf84fa53a3ffd81c098816cc8)

test/invalid_file_test.cc
test/test-data.mk
test/test-data.sha1
vp9/decoder/vp9_decodemv.c

index 2921e5ddfc01d696f40cb83b75da4cdac8bef8b9..eae81faa13019e58b56eb59e9d6ad0e30e4b0259 100644 (file)
@@ -144,6 +144,7 @@ const DecodeParam kVP9InvalidFileTests[] = {
   { 1, "invalid-vp90-2-03-size-202x210.webm.ivf.s113306_r01-05_b6-.ivf" },
   { 1,
     "invalid-vp90-2-10-show-existing-frame.webm.ivf.s180315_r01-05_b6-.ivf" },
+  { 1, "invalid-crbug-667044.webm" },
 };
 
 VP9_INSTANTIATE_TEST_CASE(InvalidFileTest,
index ebf0cd8c2ed52de29cac15ee86d318c5c2e19fbf..c1116f534c5300085ed19b2c263ff631cad66a94 100644 (file)
@@ -777,6 +777,8 @@ LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += invalid-vp90-2-07-frame_parallel-2.web
 LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += invalid-vp90-2-07-frame_parallel-3.webm
 LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += invalid-crbug-629481.webm
 LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += invalid-crbug-629481.webm.res
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += invalid-crbug-667044.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += invalid-crbug-667044.webm.res
 
 ifeq ($(CONFIG_DECODE_PERF_TESTS),yes)
 # Encode / Decode test
index b2af3ebb68e1ff6bbfa3e49cb5425e40de92bdbb..f78cef4efba1e8a416a7edfd7b0be772a7a0ba06 100644 (file)
@@ -844,3 +844,5 @@ a000d568431d07379dd5a8ec066061c07e560b47 *invalid-vp90-2-00-quantizer-63.ivf.kf_
 5d9474c0309b7ca09a182d888f73b37a8fe1362c *invalid-crbug-629481.webm.res
 7602e00378161ca36ae93cc6ee12dd30b5ba1e1d *vp90-2-22-svc_1280x720_3.ivf
 02e53e3eefbf25ec0929047fe50876acdeb040bd *vp90-2-22-svc_1280x720_3.ivf.md5
+e402cbbf9e550ae017a1e9f1f73931c1d18474e8 *invalid-crbug-667044.webm
+d3964f9dad9f60363c81b688324d95b4ec7c8038 *invalid-crbug-667044.webm.res
index 4372ba0371d5fcd0142956b6d9f860f309b3f857..1a4152436a2fc4c2a4f0bb06485e7fdb658e63c1 100644 (file)
@@ -770,6 +770,10 @@ static void read_inter_block_mode_info(VP9Decoder *const pbi,
     int idx, idy;
     PREDICTION_MODE b_mode;
     int_mv best_sub8x8[2];
+    const uint32_t invalid_mv = 0x80008000;
+    // Initialize the 2nd element as even though it won't be used meaningfully
+    // if is_compound is false, copying/clamping it may trigger a MSan warning.
+    best_sub8x8[1].as_int = invalid_mv;
     for (idy = 0; idy < 2; idy += num_4x4_h) {
       for (idx = 0; idx < 2; idx += num_4x4_w) {
         const int j = idy * 2 + idx;