From c17cb0b7e7f99cd58b22b81097601a0ecb68ba57 Mon Sep 17 00:00:00 2001 From: zhangbeihai Date: Wed, 21 May 2025 10:41:57 +0800 Subject: [PATCH 1/2] add parameter check Signed-off-by: zhangbeihai --- .../object/src/object_asset_machine.cpp | 3 ++- .../test/object_asset_machine_test.cpp | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/services/distributeddataservice/service/object/src/object_asset_machine.cpp b/services/distributeddataservice/service/object/src/object_asset_machine.cpp index 6d1d11fb7..6e7a20e35 100644 --- a/services/distributeddataservice/service/object/src/object_asset_machine.cpp +++ b/services/distributeddataservice/service/object/src/object_asset_machine.cpp @@ -133,7 +133,8 @@ static const DFAAction AssetDFA[STATUS_BUTT][EVENT_BUTT] = { int32_t ObjectAssetMachine::DFAPostEvent(AssetEvent eventId, ChangedAssetInfo& changedAssetInfo, Asset& asset, const std::pair& newAsset) { - if (eventId < 0 || eventId >= EVENT_BUTT) { + if (eventId < 0 || eventId >= EVENT_BUTT || changedAssetInfo.status >= STATUS_BUTT) { + ZLOGI("invalid parameters, eventId: %{public}d, status:%{public}d", eventId, changedAssetInfo.status); return GeneralError::E_ERROR; } diff --git a/services/distributeddataservice/service/test/object_asset_machine_test.cpp b/services/distributeddataservice/service/test/object_asset_machine_test.cpp index 1f09e90d6..b772f2450 100644 --- a/services/distributeddataservice/service/test/object_asset_machine_test.cpp +++ b/services/distributeddataservice/service/test/object_asset_machine_test.cpp @@ -75,6 +75,7 @@ void ObjectAssetMachineTest::SetUp() storeInfo_ = storeInfo; ChangedAssetInfo changedAssetInfo(asset, AssetBindInfo, storeInfo); changedAssets_[uri_] = changedAssetInfo; + changedAssets_[uri_].status = STATUS_STABLE; if (machine == nullptr) { machine = std::make_shared(); auto executors = std::make_shared(2, 1); @@ -174,6 +175,26 @@ HWTEST_F(ObjectAssetMachineTest, DFAPostEvent001, TestSize.Level0) ASSERT_EQ(ret, GeneralError::E_ERROR); } +/** +* @tc.name: DFAPostEvent001 +* @tc.desc: DFAPostEvent invalid status test +* @tc.type: FUNC +*/ +HWTEST_F(ObjectAssetMachineTest, DFAPostEvent002, TestSize.Level0) +{ + Asset asset{ + .name = "test_name", + .uri = uri_, + .modifyTime = "modifyTime1", + .size = "size1", + .hash = "modifyTime1_size1", + }; + std::pair changedAsset{ "device_2", asset }; + changedAssets_[uri_].status = DistributedData::STATUS_NO_CHANGE; + auto ret = machine->DFAPostEvent(UPLOAD, changedAssets_[uri_], asset, changedAsset); + ASSERT_EQ(ret, GeneralError::E_ERROR); +} + /** * @tc.name: StatusUpload001 * @tc.desc: No conflict scenarios: normal cloud sync. -- Gitee From ea1e22e91ce701ff894d3d5b6c8a5b1c9f92b580 Mon Sep 17 00:00:00 2001 From: wanghuajian-6 Date: Wed, 21 May 2025 17:18:40 +0800 Subject: [PATCH 2/2] add parameter check Signed-off-by: wanghuajian-6 --- .../service/object/src/object_asset_machine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/distributeddataservice/service/object/src/object_asset_machine.cpp b/services/distributeddataservice/service/object/src/object_asset_machine.cpp index 6e7a20e35..4bb56de3d 100644 --- a/services/distributeddataservice/service/object/src/object_asset_machine.cpp +++ b/services/distributeddataservice/service/object/src/object_asset_machine.cpp @@ -134,7 +134,7 @@ int32_t ObjectAssetMachine::DFAPostEvent(AssetEvent eventId, ChangedAssetInfo& c const std::pair& newAsset) { if (eventId < 0 || eventId >= EVENT_BUTT || changedAssetInfo.status >= STATUS_BUTT) { - ZLOGI("invalid parameters, eventId: %{public}d, status:%{public}d", eventId, changedAssetInfo.status); + ZLOGE("invalid parameters, eventId: %{public}d, status:%{public}d", eventId, changedAssetInfo.status); return GeneralError::E_ERROR; } -- Gitee