summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJames Zern <jzern@google.com>2017-06-07 20:46:13 -0700
committerJames Zern <jzern@google.com>2017-06-08 23:16:04 +0000
commit45daecb4f73a47ab3236a29a3a48c52324cbf19a (patch)
tree7140fa811c11246ff7790823f4732c8b0ea3a278 /test
parent9cea3a3c4efc25e03781c60d34f867ff4f35e73e (diff)
downloadlibvpx-45daecb4f73a47ab3236a29a3a48c52324cbf19a.tar
libvpx-45daecb4f73a47ab3236a29a3a48c52324cbf19a.tar.gz
libvpx-45daecb4f73a47ab3236a29a3a48c52324cbf19a.tar.bz2
libvpx-45daecb4f73a47ab3236a29a3a48c52324cbf19a.zip
vp8_decode_frame: fix oob read on truncated key frame
the check for error correction being disabled was overriding the data length checks. this avoids returning incorrect information (width / height) for the decoded frame which could result in inconsistent sizes returned in to an application causing it to read beyond the bounds of the frame allocation. BUG=webm:1443 BUG=b/62458770 Change-Id: I063459674e01b57c0990cb29372e0eb9a1fbf342
Diffstat (limited to 'test')
-rw-r--r--test/invalid_file_test.cc13
-rw-r--r--test/test-data.mk2
-rw-r--r--test/test-data.sha12
3 files changed, 15 insertions, 2 deletions
diff --git a/test/invalid_file_test.cc b/test/invalid_file_test.cc
index eae81faa1..3d9f5c16a 100644
--- a/test/invalid_file_test.cc
+++ b/test/invalid_file_test.cc
@@ -120,6 +120,15 @@ class InvalidFileTest : public ::libvpx_test::DecoderTest,
TEST_P(InvalidFileTest, ReturnCode) { RunTest(); }
+#if CONFIG_VP8_DECODER
+const DecodeParam kVP8InvalidFileTests[] = {
+ { 1, "invalid-bug-1443.ivf" },
+};
+
+VP8_INSTANTIATE_TEST_CASE(InvalidFileTest,
+ ::testing::ValuesIn(kVP8InvalidFileTests));
+#endif // CONFIG_VP8_DECODER
+
#if CONFIG_VP9_DECODER
const DecodeParam kVP9InvalidFileTests[] = {
{ 1, "invalid-vp90-02-v2.webm" },
@@ -164,12 +173,12 @@ class InvalidFileInvalidPeekTest : public InvalidFileTest {
TEST_P(InvalidFileInvalidPeekTest, ReturnCode) { RunTest(); }
#if CONFIG_VP8_DECODER
-const DecodeParam kVP8InvalidFileTests[] = {
+const DecodeParam kVP8InvalidPeekTests[] = {
{ 1, "invalid-vp80-00-comprehensive-018.ivf.2kf_0x6.ivf" },
};
VP8_INSTANTIATE_TEST_CASE(InvalidFileInvalidPeekTest,
- ::testing::ValuesIn(kVP8InvalidFileTests));
+ ::testing::ValuesIn(kVP8InvalidPeekTests));
#endif // CONFIG_VP8_DECODER
#if CONFIG_VP9_DECODER
diff --git a/test/test-data.mk b/test/test-data.mk
index b39ab8763..1656372b3 100644
--- a/test/test-data.mk
+++ b/test/test-data.mk
@@ -732,6 +732,8 @@ LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp93-2-20-12bit-yuv444.webm.md5
endif # CONFIG_VP9_HIGHBITDEPTH
# Invalid files for testing libvpx error checking.
+LIBVPX_TEST_DATA-$(CONFIG_VP8_DECODER) += invalid-bug-1443.ivf
+LIBVPX_TEST_DATA-$(CONFIG_VP8_DECODER) += invalid-bug-1443.ivf.res
LIBVPX_TEST_DATA-$(CONFIG_VP8_DECODER) += invalid-vp80-00-comprehensive-018.ivf.2kf_0x6.ivf
LIBVPX_TEST_DATA-$(CONFIG_VP8_DECODER) += invalid-vp80-00-comprehensive-018.ivf.2kf_0x6.ivf.res
LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += invalid-vp90-01-v3.webm
diff --git a/test/test-data.sha1 b/test/test-data.sha1
index 22ca6f564..7948f9e3f 100644
--- a/test/test-data.sha1
+++ b/test/test-data.sha1
@@ -848,3 +848,5 @@ a000d568431d07379dd5a8ec066061c07e560b47 *invalid-vp90-2-00-quantizer-63.ivf.kf_
6fa3d3ac306a3d9ce1d610b78441dc00d2c2d4b9 *tos_vp8.webm
e402cbbf9e550ae017a1e9f1f73931c1d18474e8 *invalid-crbug-667044.webm
d3964f9dad9f60363c81b688324d95b4ec7c8038 *invalid-crbug-667044.webm.res
+fd9df7f3f6992af1d7a9dde975c9a0d6f28c053d *invalid-bug-1443.ivf
+fd3020fa6e9ca5966206738654c97dec313b0a95 *invalid-bug-1443.ivf.res