From d9567c66fd20a1c03e53843447404349993e3d87 Mon Sep 17 00:00:00 2001 From: Drew Shao Date: Tue, 8 Nov 2022 13:51:36 -0800 Subject: [PATCH] [fuzzing] add oemcrypto_shrink_usage_table_header_fuzz Merge from Widevine repo of http://go/wvgerrit/158860 Bug: b/243078947 Test: tested with http://go/ag/20420224 Change-Id: I00d7f96ad86990ed62fb1b81508bf79bbdd3da13 --- ...emcrypto_shrink_usage_table_header_fuzz.cc | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc new file mode 100644 index 00000000..5f9ba4a2 --- /dev/null +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_shrink_usage_table_header_fuzz.cc @@ -0,0 +1,28 @@ +// Copyright 2022 Google LLC. All Rights Reserved. This file and proprietary +// source code may only be used and distributed under the Widevine +// License Agreement. + +#include "OEMCryptoCENC.h" +#include "oemcrypto_fuzz_helper.h" + +namespace wvoec { +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + // Redirect printf and log statements from oemcrypto functions to a file to + // reduce noise + RedirectStdoutToFile(); + + if (size < sizeof(uint32_t)) { + return 0; + } + + LicenseWithUsageEntryFuzz entry; + uint32_t new_entry_count = 0; + memcpy(&new_entry_count, data, sizeof(uint32_t)); + std::vector header_buffer(size - sizeof(uint32_t)); + size_t header_buffer_length = header_buffer.size(); + OEMCrypto_ShrinkUsageTableHeader(new_entry_count, header_buffer.data(), + &header_buffer_length); + + return 0; +} +} // namespace wvoec