diff --git a/test/fuzztest/backupext_fuzzer/backupext_fuzzer.cpp b/test/fuzztest/backupext_fuzzer/backupext_fuzzer.cpp index d00abd06b85291998fde89fecb04c02d5267fd01..158ced24f55d55f798d96a7727d3444eb41f202a 100644 --- a/test/fuzztest/backupext_fuzzer/backupext_fuzzer.cpp +++ b/test/fuzztest/backupext_fuzzer/backupext_fuzzer.cpp @@ -175,9 +175,14 @@ bool CmdHandleClearFuzzTest(shared_ptr extension, const uint bool CmdHandleBackupFuzzTest(shared_ptr extension, const uint8_t *data, size_t size) { + if (data == nullptr || size < sizeof(bool)) { + return true; + } + MessageParcel msg; MessageParcel reply; + msg.WriteBool(*reinterpret_cast(data)); extension->CmdHandleBackup(msg, reply); return true; } @@ -194,9 +199,14 @@ bool CmdPublishFileFuzzTest(shared_ptr extension, const uint bool CmdHandleRestoreFuzzTest(shared_ptr extension, const uint8_t *data, size_t size) { + if (data == nullptr || size < sizeof(bool)) { + return true; + } + MessageParcel msg; MessageParcel reply; + msg.WriteBool(*reinterpret_cast(data)); extension->CmdHandleRestore(msg, reply); return true; } @@ -241,9 +251,14 @@ bool CmdHandleIncrementalBackupFuzzTest(shared_ptr extension bool CmdIncrementalOnBackupFuzzTest(shared_ptr extension, const uint8_t *data, size_t size) { + if (data == nullptr || size < sizeof(bool)) { + return true; + } + MessageParcel msg; MessageParcel reply; + msg.WriteBool(*reinterpret_cast(data)); extension->CmdIncrementalOnBackup(msg, reply); return true; } @@ -257,15 +272,6 @@ bool CmdGetIncrementalBackupFileHandleFuzzTest(shared_ptr ex extension->CmdGetIncrementalBackupFileHandle(msg, reply); return true; } - -bool CmdGetBackupInfoFuzzTest(shared_ptr extension, const uint8_t *data, size_t size) -{ - MessageParcel msg; - MessageParcel reply; - - extension->CmdGetBackupInfo(msg, reply); - return true; -} } // namespace OHOS /* Fuzzer entry point */ @@ -300,7 +306,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) OHOS::CmdHandleIncrementalBackupFuzzTest(extension, data, size); OHOS::CmdIncrementalOnBackupFuzzTest(extension, data, size); OHOS::CmdGetIncrementalBackupFileHandleFuzzTest(extension, data, size); - OHOS::CmdGetBackupInfoFuzzTest(extension, data, size); } catch (OHOS::FileManagement::Backup::BError &err) { // Only filter BError errors, Other results are not expected. } diff --git a/test/fuzztest/backupsa_fuzzer/backupsa_fuzzer.cpp b/test/fuzztest/backupsa_fuzzer/backupsa_fuzzer.cpp index 195b46512cd5dd7a3bb63bc4b9df113906db8946..a811dcc08f2edf70376e2308d13bc88e6435dfdb 100644 --- a/test/fuzztest/backupsa_fuzzer/backupsa_fuzzer.cpp +++ b/test/fuzztest/backupsa_fuzzer/backupsa_fuzzer.cpp @@ -31,7 +31,6 @@ using namespace OHOS::FileManagement::Backup; namespace OHOS { -constexpr size_t FOO_MAX_LEN = 1024; constexpr size_t U32_AT_SIZE = 4; constexpr uint8_t MAX_CALL_TRANSACTION = 24; constexpr int32_t SERVICE_ID = 5203; @@ -42,16 +41,20 @@ uint32_t GetU32Data(const char* ptr) return (ptr[0] << 24) | (ptr[1] << 16) | (ptr[2] << 8) | (ptr[3]); } -bool BackupSaFuzzTest(std::unique_ptr data, size_t size) +bool BackupSaFuzzTest(const uint8_t *data, size_t size) { + if (data == nullptr || size < U32_AT_SIZE) { + return true; + } + sptr service = sptr(new Service(SERVICE_ID)); - uint32_t code = GetU32Data(data.get()); + uint32_t code = GetU32Data(reinterpret_cast(data)); if (code == 0) { return true; } MessageParcel datas; datas.WriteInterfaceToken(ServiceStub::GetDescriptor()); - datas.WriteBuffer(data.get(), size); + datas.WriteBuffer(reinterpret_cast(data + U32_AT_SIZE), size - U32_AT_SIZE); datas.RewindRead(0); MessageParcel reply; MessageOption option; @@ -64,21 +67,6 @@ bool BackupSaFuzzTest(std::unique_ptr data, size_t size) /* Fuzzer entry point */ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t dataSize) { - /* Run your code on data */ - if (data == nullptr) { - return 0; - } - - /* Validate the length of size */ - if (dataSize < OHOS::U32_AT_SIZE || dataSize > OHOS::FOO_MAX_LEN) { - return 0; - } - - auto str = std::make_unique(dataSize + 1); - (void)memset_s(str.get(), dataSize + 1, 0x00, dataSize + 1); - if (memcpy_s(str.get(), dataSize, data, dataSize) != EOK) { - return 0; - } - OHOS::BackupSaFuzzTest(move(str), dataSize); + OHOS::BackupSaFuzzTest(data, dataSize); return 0; } \ No newline at end of file diff --git a/test/fuzztest/backupsaanother_fuzzer/backupsaanother_fuzzer.cpp b/test/fuzztest/backupsaanother_fuzzer/backupsaanother_fuzzer.cpp index f4457b4fb66ac3789a6b26c7bdcebc9fc63b84c1..ca438cd7c37e8b25ce7e376856c2cbe157de3755 100644 --- a/test/fuzztest/backupsaanother_fuzzer/backupsaanother_fuzzer.cpp +++ b/test/fuzztest/backupsaanother_fuzzer/backupsaanother_fuzzer.cpp @@ -297,11 +297,6 @@ bool CmdGetIncrementalFileHandleFuzzTest(const uint8_t *data, size_t size) /* Fuzzer entry point */ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { - /* Run your code on data */ - if (data == nullptr) { - return 0; - } - OHOS::CmdGetFileHandleFuzzTest(data, size); OHOS::CmdAppendBundlesBackupSessionFuzzTest(data, size); OHOS::CmdReleaseFuzzTest(data, size); diff --git a/test/fuzztest/backupsaappend_fuzzer/backupsaappend_fuzzer.cpp b/test/fuzztest/backupsaappend_fuzzer/backupsaappend_fuzzer.cpp index fd7499f8dac60cd77819c5b53b924bb1a64f483d..2c44b79435b279a343dc607e1f554b5d69669386 100644 --- a/test/fuzztest/backupsaappend_fuzzer/backupsaappend_fuzzer.cpp +++ b/test/fuzztest/backupsaappend_fuzzer/backupsaappend_fuzzer.cpp @@ -230,10 +230,6 @@ bool CmdAppendBundlesRestoreSessionFuzzTest(const uint8_t *data, size_t size) extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { /* Run your code on data */ - if (data == nullptr) { - return 0; - } - OHOS::CmdInitRestoreSessionFuzzTest(data, size); OHOS::CmdInitBackupSessionFuzzTest(data, size); OHOS::CmdPublishFileFuzzTest(data, size); diff --git a/test/fuzztest/fileshare_fuzzer/fileshare_fuzzer.cpp b/test/fuzztest/fileshare_fuzzer/fileshare_fuzzer.cpp index e96721719c952fd9bff74d4d1bde3dd4572ac43e..dc0f2ea09fdb2f38399a464fab9f77eea7ae6928 100644 --- a/test/fuzztest/fileshare_fuzzer/fileshare_fuzzer.cpp +++ b/test/fuzztest/fileshare_fuzzer/fileshare_fuzzer.cpp @@ -24,7 +24,6 @@ #include "token_setproc.h" namespace OHOS { -constexpr size_t THRESHOLD = 10; constexpr size_t LENGTH = 4; constexpr size_t REMAINDER = 3; using namespace OHOS::Security::AccessToken; @@ -118,10 +117,6 @@ void DeactivatePermissionFuzzTest(const uint8_t *data, size_t size) /* Fuzzer entry point */ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { - if (size < OHOS::THRESHOLD) { - return 0; - } - /* Run your code on data */ OHOS::PersistPermissionFuzzTest(data, size); OHOS::RevokePermissionFuzzTest(data, size); diff --git a/test/fuzztest/svcrestoredepsmanager_fuzzer/svcrestoredepsmanager_fuzzer.cpp b/test/fuzztest/svcrestoredepsmanager_fuzzer/svcrestoredepsmanager_fuzzer.cpp index 313d3216048ab90f6d4b74c51721b3efb2035c28..f51be587a3a1841cf3ec2e3f9252f1c944d9ccc4 100644 --- a/test/fuzztest/svcrestoredepsmanager_fuzzer/svcrestoredepsmanager_fuzzer.cpp +++ b/test/fuzztest/svcrestoredepsmanager_fuzzer/svcrestoredepsmanager_fuzzer.cpp @@ -74,6 +74,10 @@ void GetInfo(const uint8_t *data, size_t size, vector bundleInfos; RestoreTypeEnum restoreType = RestoreTypeEnum::RESTORE_DATA_WAIT_SEND; if (size >= sizeof(RestoreTypeEnum)) { @@ -112,10 +116,6 @@ bool SvcRestoreDepsManagerFuzzTest(const uint8_t *data, size_t size) extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { /* Run your code on data */ - if (data == nullptr) { - return 0; - } - OHOS::SvcRestoreDepsManagerFuzzTest(data, size); return 0; } \ No newline at end of file diff --git a/tests/unittests/backup_ext/ext_backup_js_test.cpp b/tests/unittests/backup_ext/ext_backup_js_test.cpp index db6f4ea2cc0849cd521ae1a6df4be458d1aae06d..36b95fb9023be6cac99eae11c8adfe45a5e0c0e2 100644 --- a/tests/unittests/backup_ext/ext_backup_js_test.cpp +++ b/tests/unittests/backup_ext/ext_backup_js_test.cpp @@ -752,13 +752,13 @@ HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_AttachBackupExtensionContext_0100, t auto value = make_shared(); EXPECT_CALL(*extBackupMock, CreateExtBackupJsContext(_, _)).WillOnce(Return(nullptr)); - ret = AttachBackupExtensionContext(reinterpret_cast(&env), reinterpret_cast(&value), nullptr); + ret = AttachBackupExtensionContext(reinterpret_cast(&env), value.get(), nullptr); EXPECT_TRUE(ret == nullptr); EXPECT_CALL(*extBackupMock, CreateExtBackupJsContext(_, _)) .WillOnce(Return(reinterpret_cast(&env))); EXPECT_CALL(*extBackupMock, LoadSystemModuleByEngine(_, _, _, _)).WillOnce(Return(nullptr)); - ret = AttachBackupExtensionContext(reinterpret_cast(&env), reinterpret_cast(&value), nullptr); + ret = AttachBackupExtensionContext(reinterpret_cast(&env), value.get(), nullptr); EXPECT_TRUE(ret == nullptr); } catch (...) { EXPECT_TRUE(false);