diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc index 17c5150c..e0c9ee4d 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_load_usage_entry_fuzz.cc @@ -2,22 +2,22 @@ // source code may only be used and distributed under the Widevine Master // License Agreement. -#include "FuzzedDataProvider.h" #include "OEMCryptoCENC.h" #include "oemcrypto_fuzz_helper.h" namespace wvoec { +LicenseWithUsageEntryFuzz entry; + OEMCryptoResult LoadUsageEntryWithFuzzedData(OEMCrypto_SESSION session, const uint8_t* data, size_t size) { - if (size < sizeof(uint32_t)) { + uint32_t usage_entry_number; + if (size < sizeof(usage_entry_number)) { return OEMCrypto_ERROR_SHORT_BUFFER; } - - FuzzedDataProvider fuzzed_data(data, size); - const uint32_t usage_entry_number = fuzzed_data.ConsumeIntegral(); - const std::vector buffer = - fuzzed_data.ConsumeRemainingBytes(); + memcpy(&usage_entry_number, data, sizeof(usage_entry_number)); + const std::vector buffer(data + sizeof(usage_entry_number), + data + size); return OEMCrypto_LoadUsageEntry(session, usage_entry_number, buffer.data(), buffer.size()); } @@ -25,7 +25,6 @@ OEMCryptoResult LoadUsageEntryWithFuzzedData(OEMCrypto_SESSION session, // The custom mutator to mutate created encrypted usage entry. extern "C" size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size, size_t max_size, unsigned int seed) { - LicenseWithUsageEntryFuzz entry; entry.CreateUsageTableHeader(); Session* s = entry.license_messages().session(); s->open();