From 2e4d4cd0ea78b840cc2c883737598feb4e19779c Mon Sep 17 00:00:00 2001 From: 13776621730 Date: Wed, 28 May 2025 17:38:14 +0800 Subject: [PATCH] =?UTF-8?q?json=E7=BB=9F=E4=B8=80=E4=B8=BAcJSON=E7=9A=84fu?= =?UTF-8?q?zzer=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 13776621730 Change-Id: Ida2880440b938feae5ca56f4b7bc0bf01a9443fc --- .../abilityautostartupdatamanager_fuzzer.cpp | 1 - .../abilityautostartupdatamanagerb_fuzzer.cpp | 3 +- .../abilityeventhandler_fuzzer.cpp | 4 +- .../abilitymgrrdbparserutil_fuzzer/BUILD.gn | 1 - .../abilitymgrrdbparserutil_fuzzer.cpp | 3 +- .../abilitymgrrest_fuzzer.cpp | 6 +- .../deeplinkreserveconfig_fuzzer.cpp | 58 +++++++++++++------ .../extensionconfig_fuzzer.cpp | 3 +- 8 files changed, 52 insertions(+), 27 deletions(-) diff --git a/test/fuzztest/abilityautostartupdatamanager_fuzzer/abilityautostartupdatamanager_fuzzer.cpp b/test/fuzztest/abilityautostartupdatamanager_fuzzer/abilityautostartupdatamanager_fuzzer.cpp index 7baf75ac481..f8ada406c27 100644 --- a/test/fuzztest/abilityautostartupdatamanager_fuzzer/abilityautostartupdatamanager_fuzzer.cpp +++ b/test/fuzztest/abilityautostartupdatamanager_fuzzer/abilityautostartupdatamanager_fuzzer.cpp @@ -68,7 +68,6 @@ bool DoSomethingInterestingWithMyAPI(const char* data, size_t size) abilityAutoStartupDataManager->ConvertAutoStartupStatusFromValue(value, isAutoStartup, isEdmForce); abilityAutoStartupDataManager->ConvertAutoStartupDataToKey(info); abilityAutoStartupDataManager->ConvertAutoStartupInfoFromKeyAndValue(key, value); - nlohmann::json jsonObject; std::string keys(data, size); std::string values(data, size); bool checkEmpty = *data % ENABLE; diff --git a/test/fuzztest/abilityautostartupdatamanagerb_fuzzer/abilityautostartupdatamanagerb_fuzzer.cpp b/test/fuzztest/abilityautostartupdatamanagerb_fuzzer/abilityautostartupdatamanagerb_fuzzer.cpp index d59ec4339f1..67bb1d56a9c 100755 --- a/test/fuzztest/abilityautostartupdatamanagerb_fuzzer/abilityautostartupdatamanagerb_fuzzer.cpp +++ b/test/fuzztest/abilityautostartupdatamanagerb_fuzzer/abilityautostartupdatamanagerb_fuzzer.cpp @@ -99,7 +99,8 @@ void AbilityAutoStartupDataManagerFuzztest1(bool boolParam, std::string &stringP dataMgr->ConvertAutoStartupInfoFromKeyAndValue(key2, value2Illegal); dataMgr->ConvertAutoStartupInfoFromKeyAndValue(key2, value3); - nlohmann::json jsonObject = nlohmann::json::parse(key1.ToString(), nullptr, false); + cJSON *jsonObject = cJSON_Parse(key1.ToString().c_str()); + cJSON_Delete(jsonObject); dataMgr->IsEqual(key1, info); dataMgr->IsEqual(key2, info); dataMgr->IsEqual(key1Illegal, info); diff --git a/test/fuzztest/abilityeventhandler_fuzzer/abilityeventhandler_fuzzer.cpp b/test/fuzztest/abilityeventhandler_fuzzer/abilityeventhandler_fuzzer.cpp index 5aa50d5c533..6c5cd810d81 100755 --- a/test/fuzztest/abilityeventhandler_fuzzer/abilityeventhandler_fuzzer.cpp +++ b/test/fuzztest/abilityeventhandler_fuzzer/abilityeventhandler_fuzzer.cpp @@ -168,11 +168,11 @@ bool DoSomethingInterestingWithMyAPI(const char* data, size_t size) AmsConfigurationParameter::GetInstance().GetMaxRestartNum(true); AmsConfigurationParameter::GetInstance().GetDeviceType(); AmsConfigurationParameter::GetInstance().GetBootAnimationTimeoutTime(); - nlohmann::json Object; + cJSON *Object = cJSON_CreateObject(); AmsConfigurationParameter::GetInstance().LoadAppConfigurationForStartUpService(Object); AmsConfigurationParameter::GetInstance().LoadAppConfigurationForMemoryThreshold(Object); AmsConfigurationParameter::GetInstance().LoadSystemConfiguration(Object); - + cJSON_Delete(Object); return true; } } diff --git a/test/fuzztest/abilitymgrrdbparserutil_fuzzer/BUILD.gn b/test/fuzztest/abilitymgrrdbparserutil_fuzzer/BUILD.gn index be18a998b05..fa837af8e2f 100644 --- a/test/fuzztest/abilitymgrrdbparserutil_fuzzer/BUILD.gn +++ b/test/fuzztest/abilitymgrrdbparserutil_fuzzer/BUILD.gn @@ -73,7 +73,6 @@ ohos_fuzztest("AbilityMgrRdbParserUtilFuzzTest") { "hilog:libhilog", "hitrace:hitrace_meter", "ipc:ipc_core", - "json:nlohmann_json_static", "jsoncpp:jsoncpp", "libjpeg-turbo:turbojpeg", "napi:ace_napi", diff --git a/test/fuzztest/abilitymgrrdbparserutil_fuzzer/abilitymgrrdbparserutil_fuzzer.cpp b/test/fuzztest/abilitymgrrdbparserutil_fuzzer/abilitymgrrdbparserutil_fuzzer.cpp index feb86954571..9b6cd615222 100644 --- a/test/fuzztest/abilitymgrrdbparserutil_fuzzer/abilitymgrrdbparserutil_fuzzer.cpp +++ b/test/fuzztest/abilitymgrrdbparserutil_fuzzer/abilitymgrrdbparserutil_fuzzer.cpp @@ -71,9 +71,10 @@ bool DoSomethingInterestingWithMyAPI(const char* data, size_t size) instance.ParsePreInstallAbilityConfig(jsonStr, list); std::vector rootDirList; instance.GetPreInstallRootDirList(rootDirList); - nlohmann::json jsonBuf; + cJSON *jsonBuf = nullptr; instance.ReadFileIntoJson(jsonStr, jsonBuf); instance.FilterInfoFromJson(jsonBuf, list); + cJSON_Delete(jsonBuf); return true; } } diff --git a/test/fuzztest/abilitymgrrest_fuzzer/abilitymgrrest_fuzzer.cpp b/test/fuzztest/abilitymgrrest_fuzzer/abilitymgrrest_fuzzer.cpp index c4493e5bdc2..90b69fbe0e5 100755 --- a/test/fuzztest/abilitymgrrest_fuzzer/abilitymgrrest_fuzzer.cpp +++ b/test/fuzztest/abilitymgrrest_fuzzer/abilitymgrrest_fuzzer.cpp @@ -64,10 +64,12 @@ bool DoSomethingInterestingWithMyAPI(const char* data, size_t size) innerMissionInfo.FromJsonStr(jsonStr); std::vector info; innerMissionInfo.Dump(info); - nlohmann::json value; + cJSON *value = cJSON_CreateObject(); std::string node(data, size); JsonType jsonType = JsonType::STRING; - return innerMissionInfo.CheckJsonNode(value, node, jsonType); + bool result = innerMissionInfo.CheckJsonNode(value, node, jsonType); + cJSON_Delete(value); + return result; } } diff --git a/test/fuzztest/deeplinkreserveconfig_fuzzer/deeplinkreserveconfig_fuzzer.cpp b/test/fuzztest/deeplinkreserveconfig_fuzzer/deeplinkreserveconfig_fuzzer.cpp index b95b81c8524..a0a008b4d25 100644 --- a/test/fuzztest/deeplinkreserveconfig_fuzzer/deeplinkreserveconfig_fuzzer.cpp +++ b/test/fuzztest/deeplinkreserveconfig_fuzzer/deeplinkreserveconfig_fuzzer.cpp @@ -25,7 +25,6 @@ #include "deeplink_reserve_config.h" #undef private -using json = nlohmann::json; using namespace OHOS::AAFwk; namespace OHOS { namespace { @@ -86,23 +85,24 @@ bool DoSomethingInterestingWithMyAPI(const char* data, size_t size) reservedUri.pathRegex = strParam; deepLinkReserveConfig.IsUriMatched(reservedUri, link); std::vector uriList; - json jsonUriObject; - jsonUriObject["SCHEME_NAME"] = SCHEME_NAME; + cJSON *jsonUriObject = cJSON_CreateObject(); + cJSON_AddStringToObject(jsonUriObject, "SCHEME_NAME", SCHEME_NAME.c_str()); deepLinkReserveConfig.LoadReservedUrilItem(jsonUriObject, uriList); - jsonUriObject["HOST_NAME"] = HOST_NAME; + cJSON_AddStringToObject(jsonUriObject, "HOST_NAME", HOST_NAME.c_str()); deepLinkReserveConfig.LoadReservedUrilItem(jsonUriObject, uriList); - jsonUriObject["PORT_NAME"] = PORT_NAME; + cJSON_AddStringToObject(jsonUriObject, "PORT_NAME", PORT_NAME.c_str()); deepLinkReserveConfig.LoadReservedUrilItem(jsonUriObject, uriList); - jsonUriObject["PATH_NAME"] = PATH_NAME; + cJSON_AddStringToObject(jsonUriObject, "PATH_NAME", PATH_NAME.c_str()); deepLinkReserveConfig.LoadReservedUrilItem(jsonUriObject, uriList); - jsonUriObject["PATH_START_WITH_NAME"] = PATH_START_WITH_NAME; + cJSON_AddStringToObject(jsonUriObject, "PATH_START_WITH_NAME", PATH_START_WITH_NAME.c_str()); deepLinkReserveConfig.LoadReservedUrilItem(jsonUriObject, uriList); - jsonUriObject["PATH_REGEX_NAME"] = PATH_REGEX_NAME; + cJSON_AddStringToObject(jsonUriObject, "PATH_REGEX_NAME", PATH_REGEX_NAME.c_str()); deepLinkReserveConfig.LoadReservedUrilItem(jsonUriObject, uriList); - jsonUriObject["TYPE_NAME"] = TYPE_NAME; + cJSON_AddStringToObject(jsonUriObject, "TYPE_NAME", TYPE_NAME.c_str()); deepLinkReserveConfig.LoadReservedUrilItem(jsonUriObject, uriList); - jsonUriObject["UTD_NAME"] = UTD_NAME; + cJSON_AddStringToObject(jsonUriObject, "UTD_NAME", UTD_NAME.c_str()); deepLinkReserveConfig.LoadReservedUrilItem(jsonUriObject, uriList); + cJSON_Delete(jsonUriObject); return true; } @@ -110,22 +110,44 @@ bool DoSomethingInterestingWithMyAPIOne(const char* data, size_t size) { auto &deepLinkReserveConfig1 = DeepLinkReserveConfig::GetInstance(); std::string filePath(data, size); - json jsonBuf; + cJSON *jsonBuf = nullptr; deepLinkReserveConfig1.ReadFileInfoJson(filePath, jsonBuf); - json object; + cJSON_Delete(jsonBuf); + + cJSON *object = cJSON_CreateObject(); deepLinkReserveConfig1.LoadReservedUriList(object); - object["DEEPLINK_RESERVED_URI_NAME"] = DEEPLINK_RESERVED_URI_NAME; + + cJSON_AddStringToObject(object, "DEEPLINK_RESERVED_URI_NAME", DEEPLINK_RESERVED_URI_NAME.c_str()); deepLinkReserveConfig1.LoadReservedUriList(object); + int32_t userId = static_cast(GetU32Data(data)); - object["BUNDLE_NAME"] = userId; + cJSON_AddNumberToObject(object, "BUNDLE_NAME", userId); deepLinkReserveConfig1.LoadReservedUriList(object); - object["BUNDLE_NAME"] = BUNDLE_NAME; + + cJSON *oldBundleNameItem = cJSON_GetObjectItem(object, "BUNDLE_NAME"); + if (oldBundleNameItem != nullptr) { + cJSON_DetachItemViaPointer(object, oldBundleNameItem); + cJSON_Delete(oldBundleNameItem); + } + cJSON_AddStringToObject(object, "BUNDLE_NAME", BUNDLE_NAME.c_str()); deepLinkReserveConfig1.LoadReservedUriList(object); - json uriArray = { "uri1", "uri2", "uri3" }; - object["URIS_NAME"] = uriArray; + + cJSON *uriArray = cJSON_CreateArray(); + cJSON_AddItemToArray(uriArray, cJSON_CreateString("uri1")); + cJSON_AddItemToArray(uriArray, cJSON_CreateString("uri2")); + cJSON_AddItemToArray(uriArray, cJSON_CreateString("uri3")); + cJSON_AddItemToObject(object, "URIS_NAME", uriArray); deepLinkReserveConfig1.LoadReservedUriList(object); - object["URIS_NAME"] = URIS_NAME; + + cJSON *oldUriNameItem = cJSON_GetObjectItem(object, "URIS_NAME"); + if (oldUriNameItem != nullptr) { + cJSON_DetachItemViaPointer(object, oldUriNameItem); + cJSON_Delete(oldUriNameItem); + } + cJSON_AddStringToObject(object, "URIS_NAME", URIS_NAME.c_str()); deepLinkReserveConfig1.LoadReservedUriList(object); + + cJSON_Delete(object); return true; } } diff --git a/test/fuzztest/extensionconfig_fuzzer/extensionconfig_fuzzer.cpp b/test/fuzztest/extensionconfig_fuzzer/extensionconfig_fuzzer.cpp index baeff74603d..1bb6f0caee3 100644 --- a/test/fuzztest/extensionconfig_fuzzer/extensionconfig_fuzzer.cpp +++ b/test/fuzztest/extensionconfig_fuzzer/extensionconfig_fuzzer.cpp @@ -61,7 +61,7 @@ bool DoSomethingInterestingWithMyAPI(const char *data, size_t size) extensionConfig->IsExtensionStartServiceEnableNew(strParam, strParam); extensionConfig->IsExtensionStartThirdPartyAppEnableNew(strParam, strParam); extensionConfig->IsExtensionStartDefaultEnable(strParam, strParam); - nlohmann::json object; + cJSON *object = cJSON_CreateObject(); extensionConfig->LoadExtensionConfig(object); extensionConfig->ReadFileInfoJson(strParam, object); extensionConfig->GetExtensionConfigPath(); @@ -70,6 +70,7 @@ bool DoSomethingInterestingWithMyAPI(const char *data, size_t size) extensionConfig->LoadExtensionServiceBlockedList(object, strParam); extensionConfig->LoadExtensionAbilityAccess(object, strParam); extensionConfig->CheckExtensionUriValid(strParam); + cJSON_Delete(object); return true; } } // namespace OHOS -- Gitee