diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc index f99bffba..c208f344 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_report_usage_fuzz.cc @@ -16,10 +16,6 @@ constexpr size_t MAX_FUZZ_PST_REPORT_BUFFER_LENGTH = 5 * wvoec::MB; extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::RedirectStdoutToFile(); - if (size < sizeof(size_t)) { - return 0; - } - wvoec::LicenseWithUsageEntryFuzz entry; entry.Initialize(); entry.CreateUsageTableHeader(); @@ -35,14 +31,18 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { entry.LoadLicense(); FuzzedDataProvider fuzzed_data(data, size); - size_t pst_report_buffer_length = fuzzed_data.ConsumeIntegralInRange( - 0, MAX_FUZZ_PST_REPORT_BUFFER_LENGTH); + size_t pst_report_buffer_length_data = + fuzzed_data.ConsumeIntegralInRange( + 0, MAX_FUZZ_PST_REPORT_BUFFER_LENGTH); + std::vector pst_report_buffer(pst_report_buffer_length_data); + size_t* const pst_report_buffer_length = + fuzzed_data.ConsumeBool() ? &pst_report_buffer_length_data : nullptr; const std::vector pst = fuzzed_data.ConsumeRemainingBytes(); - std::vector pst_report_buffer(pst_report_buffer_length); // Call API with fuzzed pst_buffer_length, pst. OEMCrypto_ReportUsage(session->session_id(), pst.data(), pst.size(), - pst_report_buffer.data(), &pst_report_buffer_length); + pst_report_buffer.data(), pst_report_buffer_length); session->close(); OEMCrypto_Terminate(); + return 0; } 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 index 09113d63..e9db0bb0 100644 --- 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 @@ -11,20 +11,18 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { wvoec::RedirectStdoutToFile(); - if (size < sizeof(uint32_t) + sizeof(size_t)) { - return 0; - } - wvoec::LicenseWithUsageEntryFuzz entry; entry.Initialize(); entry.CreateUsageTableHeader(); FuzzedDataProvider fuzzed_data(data, size); const uint32_t new_entry_count = fuzzed_data.ConsumeIntegral(); - size_t header_buffer_length = fuzzed_data.ConsumeIntegralInRange( + size_t header_buffer_length_data = fuzzed_data.ConsumeIntegralInRange( 0, wvoec::MAX_FUZZ_OUTPUT_LENGTH); - std::vector header_buffer(header_buffer_length); + std::vector header_buffer(header_buffer_length_data); + size_t* const header_buffer_length = + fuzzed_data.ConsumeBool() ? &header_buffer_length_data : nullptr; OEMCrypto_ShrinkUsageTableHeader(new_entry_count, header_buffer.data(), - &header_buffer_length); + header_buffer_length); OEMCrypto_Terminate(); return 0; }