From b91aefe545cb423539f910cfd0fe0a4c92f5482f Mon Sep 17 00:00:00 2001 From: daiyunlong Date: Tue, 1 Jul 2025 23:44:12 +0800 Subject: [PATCH] =?UTF-8?q?SAFuzz=204802=2051=E6=8E=A5=E5=8F=A3cppcrash?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: daiyunlong --- services/service/src/discovery/discovery_manager.cpp | 8 +++++--- test/commonunittest/UTTest_discovery_manager.cpp | 12 ++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/services/service/src/discovery/discovery_manager.cpp b/services/service/src/discovery/discovery_manager.cpp index 87db35c87..a26cf7af1 100644 --- a/services/service/src/discovery/discovery_manager.cpp +++ b/services/service/src/discovery/discovery_manager.cpp @@ -168,9 +168,11 @@ int32_t DiscoveryManager::StartDiscovering(const std::string &pkgName, StartDiscoveryTimer(pkgNameTemp); auto it = filterOptions.find(PARAM_KEY_FILTER_OPTIONS); - JsonObject jsonObject(it->second); - if (!jsonObject.IsDiscarded() && jsonObject.Contains(TYPE_MINE)) { - return StartDiscovering4MineLibary(pkgNameTemp, dmSubInfo, it->second); + if (it != filterOptions.end()) { + JsonObject jsonObject(it->second); + if (!jsonObject.IsDiscarded() && jsonObject.Contains(TYPE_MINE)) { + return StartDiscovering4MineLibary(pkgNameTemp, dmSubInfo, it->second); + } } int32_t ret = isStandardMetaNode ? StartDiscoveringNoMetaType(pkgNameTemp, dmSubInfo, discoverParam) : diff --git a/test/commonunittest/UTTest_discovery_manager.cpp b/test/commonunittest/UTTest_discovery_manager.cpp index d73b1f55f..1de0b1d66 100644 --- a/test/commonunittest/UTTest_discovery_manager.cpp +++ b/test/commonunittest/UTTest_discovery_manager.cpp @@ -141,6 +141,18 @@ HWTEST_F(DiscoveryManagerTest, StartDiscovering_003, testing::ext::TestSize.Leve EXPECT_EQ(ret, ERR_DM_DISCOVERY_REPEATED); } +HWTEST_F(DiscoveryManagerTest, StartDiscovering_004, testing::ext::TestSize.Level0) +{ + std::string pkgName = "pkgName_test1"; + std::map discoverParam; + std::map filterOptions; + discoverParam.insert(std::pair("SUBSCRIBE_ID", "test_value1")); + discoverParam.insert(std::pair("DISC_MEDIUM", "test_value2")); + filterOptions.insert(std::pair("PARAM_KEY_FILTER_OPTIONS", "test_value3")); + int32_t ret = manager->StartDiscovering(pkgName, discoverParam, filterOptions); + EXPECT_EQ(true, checkSoftbusRes(ret)); +} + HWTEST_F(DiscoveryManagerTest, StartDiscovering4MineLibary_001, testing::ext::TestSize.Level0) { std::string pkgName = "pkgName"; -- Gitee