diff --git a/test/fuzztest/backupext_fuzzer/backupext_fuzzer.cpp b/test/fuzztest/backupext_fuzzer/backupext_fuzzer.cpp index a100e64faaa04738df7be32ed49a042aa5605b7a..c921424d2cfb7f017adf6b47cb651bc8d1c56769 100644 --- a/test/fuzztest/backupext_fuzzer/backupext_fuzzer.cpp +++ b/test/fuzztest/backupext_fuzzer/backupext_fuzzer.cpp @@ -348,6 +348,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) auto extension = OHOS::sptr( new OHOS::FileManagement::Backup::BackupExtExtension(extBackup, "")); + OHOS::OnRemoteRequestFuzzTest(extension, data, size); OHOS::InitFuzzTest(extBackup, data, size); OHOS::OnCommandFuzzTest(extBackup, data, size); OHOS::OnConnectFuzzTest(extBackup, data, size); @@ -373,7 +374,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::OnRemoteRequestFuzzTest(extension, data, size); } catch (OHOS::FileManagement::Backup::BError &err) { // Only filter BError errors, Other results are not expected. } diff --git a/test/fuzztest/backupsaanother_fuzzer/BUILD.gn b/test/fuzztest/backupsaanother_fuzzer/BUILD.gn index 36412f43bd770ce6008cb96cf1806a78a79128f8..87df2a663bc53a4be08536060241b7ea6a8fbcbf 100644 --- a/test/fuzztest/backupsaanother_fuzzer/BUILD.gn +++ b/test/fuzztest/backupsaanother_fuzzer/BUILD.gn @@ -50,15 +50,19 @@ ohos_fuzztest("BackupSaAnotherFuzzTest") { "ability_runtime:abilitykit_native", "bounds_checking_function:libsec_shared", "c_utils:utils", + "data_share:datashare_common", + "data_share:datashare_consumer", "file_api:filemgmt_libn", "hilog:libhilog", "ipc:ipc_core", "safwk:system_ability_fwk", + "storage_service:storage_manager_sa_proxy", ] defines = [ "LOG_TAG=\"app_file_service\"", "LOG_DOMAIN=0xD004303", + "private = public", ] use_exceptions = true diff --git a/test/fuzztest/backupsaanother_fuzzer/backupsaanother_fuzzer.cpp b/test/fuzztest/backupsaanother_fuzzer/backupsaanother_fuzzer.cpp index 8c3ae92d8cd04655bea0f5e016cb2c184f7ce5a8..0355953f8961729c9fbed894199602952e801854 100644 --- a/test/fuzztest/backupsaanother_fuzzer/backupsaanother_fuzzer.cpp +++ b/test/fuzztest/backupsaanother_fuzzer/backupsaanother_fuzzer.cpp @@ -23,6 +23,7 @@ #include #include "message_parcel.h" +#include "module_external/storage_manager_service.h" #include "sandbox_helper.h" #include "service.h" #include "service_proxy.h" @@ -198,7 +199,11 @@ bool CmdAppendBundlesIncrementalBackupSessionFuzzTest(const uint8_t *data, size_ sptr service(new Service(SERVICE_ID)); uint32_t code = static_cast( IServiceIpcCode::COMMAND_APPEND_BUNDLES_INCREMENTAL_BACKUP_SESSION); - service->OnRemoteRequest(code, datas, reply, option); + try { + service->OnRemoteRequest(code, datas, reply, option); + } catch (OHOS::FileManagement::Backup::BError &err) { + + } service = nullptr; return true; } @@ -300,20 +305,102 @@ bool CmdGetIncrementalFileHandleFuzzTest(const uint8_t *data, size_t size) service = nullptr; return true; } + +bool GetStorageRecognizeSandboxPathEl1FuzzTest(const uint8_t *data, size_t size) +{ + uint32_t userId = 100; + int len >> 1; + string bundleName(reinterpret_cast(data), len); + string sandBoxSubpath(reinterpret_cast(data + len), len); + string fullPath = BASE_EL1 + DEFAULT_PATH_WITH_WILDCARD + sandBoxSubpath + std::vector phyIncludes; + std::map pathMap; + StorageManagerService::GetInstance().RecognizeSandboxWildCard(userId, bundleName, fullPath, phyIncludes, pathMap); + return true; +} + +bool GetStorageRecognizeSandboxPathEl2FuzzTest(const uint8_t *data, size_t size) +{ + uint32_t userId = 100; + int len >> 1; + string bundleName(reinterpret_cast(data), len); + string sandBoxSubpath(reinterpret_cast(data + len), len); + string fullPath = BASE_EL2 + DEFAULT_PATH_WITH_WILDCARD + sandBoxSubpath + std::vector phyIncludes; + std::map pathMap; + StorageManagerService::GetInstance().RecognizeSandboxWildCard(userId, bundleName, fullPath, phyIncludes, pathMap); + return true; +} + +bool CmdExcludePathMap(const uint8_t *data, size_t size) +{ + string excludePath(reinterpret_cast(data), len); + std::map excludesMap; + StorageManagerService::GetInstance().SetExcludePathMap(excludePath, excludesMap); + return true; +} + +bool CmdAddQuterDirInfoFileStateFuzzTest(const uint8_t *data, size_t size) +{ + int len >> 1; + string dir(reinterpret_cast(data), len); + // 从data构造paras + BundleStatsParas bundleStatsParas; + StorageManagerService::GetInstance().AddOuterDirIntoFileStat(dir, bundleStatsParas); + return true; +} + +bool CmdPhysicalToSanboxPath(const uint8_t *data, size_t size) +{ + string dir(reinterpret_cast(data), len); + string sandBodDir(reinterpret_cast(data + len), len); + string path(reinterpret_cast(data + len), len); + StorageManagerService::GetInstance().PhysicalToSandboxPath(dir, sandBodDir, path); + return true; +} + +bool CmdAddPathMapForPathWildCard(const uint8_t *data, size_t size) +{ + uint32_t userId = 100; + int len >> 1; + string bundleName(reinterpret_cast(data), len); + string phyPath(reinterpret_cast(data + len), len); + std::map pathMap; + StorageManagerService::GetInstance().AddPathMapForPathWildCard(userId, bundleName, phyPath, pathMap); + return true; +} + +bool CmdCheckOverLongPath(const uint8_t *data, size_t size) +{ + string filePath(reinterpret_cast(data), len); + StorageManagerService::GetInstance().CheckOverLongPath(filePath); + return true; +} } // namespace OHOS /* Fuzzer entry point */ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { - OHOS::CmdGetFileHandleFuzzTest(data, size); - OHOS::CmdAppendBundlesBackupSessionFuzzTest(data, size); - OHOS::CmdReleaseFuzzTest(data, size); - OHOS::CmdGetLocalCapabilitiesIncrementalFuzzTest(data, size); - OHOS::CmdInitIncrementalBackupSessionFuzzTest(data, size); - OHOS::CmdPublishIncrementalFileFuzzTest(data, size); - OHOS::CmdAppIncrementalFileReadyFuzzTest(data, size); - OHOS::CmdAppIncrementalDoneFuzzTest(data, size); - OHOS::CmdGetIncrementalFileHandleFuzzTest(data, size); - OHOS::CmdAppendBundlesIncrementalBackupSessionFuzzTest(data, size); + try { + OHOS::CmdGetLocalCapabilitiesIncrementalFuzzTest(data, size); + OHOS::GetStorageRecognizeSandboxPathEl1FuzzTest(data, size); + OHOS::GetStorageRecognizeSandboxPathEl2FuzzTest(data, size); + OHOS::CmdExcludePathMap(data, size); + OHOS::CmdAddQuterDirInfoFileStateFuzzTest(data, size); + OHOS::CmdPhysicalToSanboxPath(data, size); + OHOS::CmdAddPathMapForPathWildCard(data, size); + OHOS::CmdCheckOverLongPath(data, size); + OHOS::CmdGetFileHandleFuzzTest(data, size); + OHOS::CmdAppendBundlesBackupSessionFuzzTest(data, size); + OHOS::CmdReleaseFuzzTest(data, size); + OHOS::CmdInitIncrementalBackupSessionFuzzTest(data, size); + OHOS::CmdPublishIncrementalFileFuzzTest(data, size); + OHOS::CmdAppIncrementalFileReadyFuzzTest(data, size); + OHOS::CmdAppIncrementalDoneFuzzTest(data, size); + OHOS::CmdGetIncrementalFileHandleFuzzTest(data, size); + OHOS::CmdAppendBundlesIncrementalBackupSessionFuzzTest(data, size); + } catch (OHOS::FileManagement::Backup::BError &err) { + + } return 0; } \ No newline at end of file diff --git a/test/fuzztest/backupsaappend_fuzzer/backupsaappend_fuzzer.cpp b/test/fuzztest/backupsaappend_fuzzer/backupsaappend_fuzzer.cpp index 9a6e46113927a07fb242375553133ee2882cdd70..807b77a5476b166572fafab44f8638aea7b06fb2 100644 --- a/test/fuzztest/backupsaappend_fuzzer/backupsaappend_fuzzer.cpp +++ b/test/fuzztest/backupsaappend_fuzzer/backupsaappend_fuzzer.cpp @@ -230,14 +230,18 @@ 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 */ - OHOS::CmdInitRestoreSessionFuzzTest(data, size); - OHOS::CmdInitBackupSessionFuzzTest(data, size); - OHOS::CmdPublishFileFuzzTest(data, size); - OHOS::CmdGetLocalCapabilitiesFuzzTest(data, size); - OHOS::CmdAppFileReadyFuzzTest(data, size); - OHOS::CmdAppDoneFuzzTest(data, size); - OHOS::CmdStartFuzzTest(data, size); - OHOS::CmdFinishFuzzTest(data, size); - OHOS::CmdAppendBundlesRestoreSessionFuzzTest(data, size); + try { + OHOS::CmdInitRestoreSessionFuzzTest(data, size); + OHOS::CmdInitBackupSessionFuzzTest(data, size); + OHOS::CmdPublishFileFuzzTest(data, size); + OHOS::CmdGetLocalCapabilitiesFuzzTest(data, size); + OHOS::CmdAppFileReadyFuzzTest(data, size); + OHOS::CmdAppDoneFuzzTest(data, size); + OHOS::CmdStartFuzzTest(data, size); + OHOS::CmdFinishFuzzTest(data, size); + OHOS::CmdAppendBundlesRestoreSessionFuzzTest(data, size); + } catch (OHOS::FileManagement::Backup::BError &err) { + + } return 0; } \ No newline at end of file diff --git a/test/fuzztest/servicereverse_fuzzer/servicereverse_fuzzer.cpp b/test/fuzztest/servicereverse_fuzzer/servicereverse_fuzzer.cpp index 09767b6eea6e4e70c82ee571c0a0664e558534b8..8f9b3cb143ed5fb5dacfb7276a132ed59b5959c4 100644 --- a/test/fuzztest/servicereverse_fuzzer/servicereverse_fuzzer.cpp +++ b/test/fuzztest/servicereverse_fuzzer/servicereverse_fuzzer.cpp @@ -657,16 +657,19 @@ bool IncrementalRestoreOnProcessInfoFuzzTest(sptr service, const bool OnRemoteRequestFuzzTest(sptr service, const uint8_t *data, size_t size) { - uint32_t codeMax = 26; + uint32_t codeMax = 31; for (uint32_t code = 1; code < codeMax; code++) { MessageParcel datas; MessageParcel reply; MessageOption option; - datas.WriteInterfaceToken(ServiceReverseStub::GetDescriptor()); datas.WriteBuffer(reinterpret_cast(data), size); datas.RewindRead(0); - service->OnRemoteRequest(code, datas, reply, option); + try { + service->OnRemoteRequest(code, datas, reply, option); + } catch (BError &err) { + // Only filter BError errors, Other results are not expected. + } } { MessageParcel datas; @@ -697,7 +700,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) printf("service handler is nullptr"); return 0; } - + OHOS::OnRemoteRequestFuzzTest(incrementalRestoreService, data, size); OHOS::BackupOnFileReadyFuzzTest(backupService, data, size); OHOS::BackupOnBundleStartedFuzzTest(backupService, data, size); OHOS::BackupOnResultReportFuzzTest(backupService, data, size); @@ -730,7 +733,5 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) OHOS::IncrementalRestoreOnFileReadyFuzzTest(incrementalRestoreService, data, size); OHOS::IncrementalRestoreOnResultReportFuzzTest(incrementalRestoreService, data, size); OHOS::IncrementalRestoreOnProcessInfoFuzzTest(incrementalRestoreService, data, size); - OHOS::OnRemoteRequestFuzzTest(incrementalRestoreService, data, size); - return 0; } \ No newline at end of file