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