diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc index b59dc381..2e608cb4 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_move_usage_entry_fuzz.cc @@ -2,6 +2,7 @@ // 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" @@ -19,12 +20,6 @@ extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { } extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - uint32_t usage_entry_number; - if (size < sizeof(usage_entry_number)) { - return 0; - } - memcpy(&usage_entry_number, data, sizeof(usage_entry_number)); - entry.CreateUsageTableHeader(); wvoec::Session* s = entry.license_messages().session(); s->open(); @@ -32,7 +27,13 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { s->CreateNewUsageEntry(); std::vector encrypted_usage_header; s->UpdateUsageEntry(&encrypted_usage_header); - OEMCrypto_MoveEntry(s->session_id(), usage_entry_number); + s->close(); + + s->open(); + s->ReloadUsageEntry(); + OEMCrypto_MoveEntry( + s->session_id(), + FuzzedDataProvider(data, size).ConsumeIntegral()); s->close(); return 0; diff --git a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc index 8d99493a..7aef70f9 100644 --- a/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc +++ b/libwvdrmengine/oemcrypto/test/fuzz_tests/oemcrypto_reuse_usage_entry_fuzz.cc @@ -2,6 +2,7 @@ // 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" @@ -19,20 +20,17 @@ extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv) { } extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - uint32_t usage_entry_number; - if (size < sizeof(usage_entry_number)) { - return 0; - } - memcpy(&usage_entry_number, data, sizeof(usage_entry_number)); - entry.CreateUsageTableHeader(); wvoec::Session* s = entry.license_messages().session(); s->open(); entry.InstallTestDrmKey(s); s->CreateNewUsageEntry(); s->close(); + s->open(); - OEMCrypto_ReuseUsageEntry(s->session_id(), usage_entry_number); + OEMCrypto_ReuseUsageEntry( + s->session_id(), + FuzzedDataProvider(data, size).ConsumeIntegral()); s->close(); return 0;