diff --git a/common/test/unittest/common/utils/data_buffer_test.cpp b/common/test/unittest/common/utils/data_buffer_test.cpp index b973c6c55852066ef307798aa804e0ad32b8f0cd..9868c0b2c93f0d99a5a2da53745722d18bcbff56 100644 --- a/common/test/unittest/common/utils/data_buffer_test.cpp +++ b/common/test/unittest/common/utils/data_buffer_test.cpp @@ -67,6 +67,9 @@ HWTEST_F(DataBufferTest, SetRange_001, TestSize.Level1) { size_t offset = 0; size_t size = 0; + if (dataBuffer_ == nullptr) { + return; + } int32_t ret = dataBuffer_->SetRange(offset, size); EXPECT_EQ(DCAMERA_OK, ret); offset = dataBuffer_->Offset() + 2; @@ -85,6 +88,9 @@ HWTEST_F(DataBufferTest, FindInt32_001, TestSize.Level1) { string name = "test"; int32_t value = 1; + if (dataBuffer_ == nullptr) { + return; + } dataBuffer_->SetInt32(name, value); bool ret = dataBuffer_->FindInt32(name, value); EXPECT_EQ(true, ret); @@ -103,6 +109,9 @@ HWTEST_F(DataBufferTest, FindInt62_001, TestSize.Level1) { string name = "test"; int64_t value = 1; + if (dataBuffer_ == nullptr) { + return; + } dataBuffer_->SetInt64(name, value); bool ret = dataBuffer_->FindInt64(name, value); EXPECT_EQ(true, ret); @@ -121,6 +130,9 @@ HWTEST_F(DataBufferTest, FindString_001, TestSize.Level1) { string name = "test"; string value = "test"; + if (dataBuffer_ == nullptr) { + return; + } dataBuffer_->SetString(name, value); bool ret = dataBuffer_->FindString(name, value); EXPECT_EQ(true, ret); diff --git a/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback.cpp b/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback.cpp index 4cac74bf2a3fed05780dc4e38a46cc50a86c0daf..39b05747be5a146847b0956b2b0fbb21711e7d13 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback.cpp +++ b/interfaces/inner_kits/native_cpp/camera_sink/src/callback/dcamera_sink_callback.cpp @@ -36,7 +36,9 @@ int32_t DCameraSinkCallback::OnNotifyResourceInfo(const ResourceEventType &type, std::lock_guard lock(privacyResMutex_); auto iter = privacyResCallback_.begin(); if (iter != privacyResCallback_.end()) { - ret = (*iter)->OnPrivaceResourceMessage(type, subtype, networkId, isSensitive, isSameAccout); + if (*iter != nullptr) { + ret = (*iter)->OnPrivaceResourceMessage(type, subtype, networkId, isSensitive, isSameAccout); + } } return ret; } diff --git a/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler_ipc.cpp b/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler_ipc.cpp index f18e120c2131b755ae45143fb1a5546b6112005b..9a90becc709eef6c126cd9ca4e34d4824996f8fc 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler_ipc.cpp +++ b/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler_ipc.cpp @@ -97,7 +97,7 @@ sptr DCameraSinkHandlerIpc::GetSinkLocalCamSrv() } { std::lock_guard autoLock(sinkLocalCamSrvLock_); - if (localSink_ != nullptr) { + if (localSink_ != nullptr && localSink_->AsObject() != nullptr) { localSink_->AsObject()->RemoveDeathRecipient(sinkLocalRecipient_); } localSink_ = localSink; @@ -110,7 +110,7 @@ void DCameraSinkHandlerIpc::DeleteSinkLocalCamSrv() { DHLOGI("start"); std::lock_guard autoLock(sinkLocalCamSrvLock_); - if (localSink_ != nullptr) { + if (localSink_ != nullptr && localSink_->AsObject()) { localSink_->AsObject()->RemoveDeathRecipient(sinkLocalRecipient_); } localSink_ = nullptr; diff --git a/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp b/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp index cb4a59854aed3a702031d5220fb212ee2c57555a..cb2ea35aa9fd89e63362122562ddeca5d6a09e1e 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp +++ b/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp @@ -48,9 +48,11 @@ int32_t DistributedCameraSinkProxy::InitSink(const std::string& params, const sp DHLOGE("write params failed"); return DCAMERA_BAD_VALUE; } - if (!data.WriteRemoteObject(sinkCallback->AsObject())) { - DHLOGE("write sinkCallback failed"); - return DCAMERA_BAD_VALUE; + if (sinkCallback != nullptr && sinkCallback->AsObject() != nullptr) { + if (!data.WriteRemoteObject(sinkCallback->AsObject())) { + DHLOGE("write sinkCallback failed"); + return DCAMERA_BAD_VALUE; + } } remote->SendRequest(static_cast(IDCameraSinkInterfaceCode::INIT_SINK), data, reply, option); int32_t result = reply.ReadInt32(); diff --git a/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler_ipc.cpp b/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler_ipc.cpp index 36317d843ef941ed110a902c14b0299cd0a0be32..64baee1377d9ca79ce7184344291e4fc9256023c 100644 --- a/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler_ipc.cpp +++ b/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler_ipc.cpp @@ -97,7 +97,7 @@ sptr DCameraSourceHandlerIpc::GetSourceLocalCamSrv() } { std::lock_guard autoLock(sourceLocalCamSrvLock_); - if (localSource_ != nullptr) { + if (localSource_ != nullptr && localSource_->AsObject() != nullptr) { localSource_->AsObject()->RemoveDeathRecipient(sourceLocalRecipient_); } localSource_ = localSource; @@ -110,7 +110,7 @@ void DCameraSourceHandlerIpc::DeleteSourceLocalCamSrv() { DHLOGI("start"); std::lock_guard autoLock(sourceLocalCamSrvLock_); - if (localSource_ != nullptr) { + if (localSource_ != nullptr && localSource_->AsObject() != nullptr) { localSource_->AsObject()->RemoveDeathRecipient(sourceLocalRecipient_); } localSource_ = nullptr; diff --git a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/callbackonnotifyresourceinfo_fuzzer/callbackonnotifyresourceinfo_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/callbackonnotifyresourceinfo_fuzzer/callbackonnotifyresourceinfo_fuzzer.cpp index f803426b7dafe6b59cb385093fbc491cd0c4ec1d..cad43507dd3a01ca98dfc8f3b9d2ef7c09ff6dbe 100644 --- a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/callbackonnotifyresourceinfo_fuzzer/callbackonnotifyresourceinfo_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/callbackonnotifyresourceinfo_fuzzer/callbackonnotifyresourceinfo_fuzzer.cpp @@ -42,6 +42,9 @@ void CallbackOnNotifyResourceInfoFuzzTest(const uint8_t* data, size_t size) std::shared_ptr callback = std::make_shared(); sptr dcameraSinkCallback(new (std::nothrow) DCameraSinkCallback()); + if (dcameraSinkCallback == nullptr) { + return; + } dcameraSinkCallback->PushPrivacyResCallback(callback); dcameraSinkCallback->OnNotifyResourceInfo(type, subtype, networkId, isSensitive, isSameAccout); } diff --git a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/callbacksinkonremoterequest_fuzzer/callbacksinkonremoterequest_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/callbacksinkonremoterequest_fuzzer/callbacksinkonremoterequest_fuzzer.cpp index 8b4f0bf2169909c03fbab66680ca6cc182fb16c0..bcc66df0e5c039731ab65f1297deeca1480c8daa 100644 --- a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/callbacksinkonremoterequest_fuzzer/callbacksinkonremoterequest_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/callbacksinkonremoterequest_fuzzer/callbacksinkonremoterequest_fuzzer.cpp @@ -53,6 +53,9 @@ void CallbackSinkOnRemoteRequestFuzzTest(const uint8_t* data, size_t size) pdata.ReadBool(isSameAccout); sptr dcameraSinkCallback(new (std::nothrow) DCameraSinkCallback()); + if (dcameraSinkCallback == nullptr) { + return; + } dcameraSinkCallback->memberFuncMap_[code] = &DCameraSinkCallbackStub::OnNotifyResourceInfoInner; dcameraSinkCallback->OnRemoteRequest(code, pdata, reply, option); } @@ -76,6 +79,9 @@ void CallbackSinkOnNotifyResourceInfoInnerFuzzTest(const uint8_t* data, size_t s pdata.ReadBool(isSameAccout); sptr dcameraSinkCallback(new (std::nothrow) DCameraSinkCallback()); + if (dcameraSinkCallback == nullptr) { + return; + } dcameraSinkCallback->OnNotifyResourceInfoInner(pdata, reply); } } diff --git a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonnotifyregresult_fuzzer/callbackonnotifyregresult_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonnotifyregresult_fuzzer/callbackonnotifyregresult_fuzzer.cpp index 77072bfaf7a427ca347fc109cffebfe78818f8eb..865823427f0f1b2b48719f739b26e0592f861ec1 100644 --- a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonnotifyregresult_fuzzer/callbackonnotifyregresult_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonnotifyregresult_fuzzer/callbackonnotifyregresult_fuzzer.cpp @@ -34,6 +34,9 @@ void CallbackOnNotifyRegResultFuzzTest(const uint8_t* data, size_t size) std::shared_ptr callback = std::make_shared(); sptr dcameraSourceCallback(new (std::nothrow) DCameraSourceCallback()); + if (dcameraSourceCallback == nullptr) { + return; + } dcameraSourceCallback->PushRegCallback(reqId, callback); dcameraSourceCallback->OnNotifyRegResult(devId, dhId, reqId, status, dataStr); } diff --git a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonnotifyunregresult_fuzzer/callbackonnotifyunregresult_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonnotifyunregresult_fuzzer/callbackonnotifyunregresult_fuzzer.cpp index babcb07138a2bb7902a23f25badbe35a6cd1dc27..8667fc20c606abea266892b85cceccf8b5236901 100644 --- a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonnotifyunregresult_fuzzer/callbackonnotifyunregresult_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonnotifyunregresult_fuzzer/callbackonnotifyunregresult_fuzzer.cpp @@ -34,6 +34,9 @@ void CallbackOnNotifyRegResultFuzzTest(const uint8_t* data, size_t size) std::shared_ptr uncallback = std::make_shared(); sptr dcameraSourceCallback(new (std::nothrow) DCameraSourceCallback()); + if (dcameraSourceCallback == nullptr) { + return; + } dcameraSourceCallback->PushUnregCallback(reqId, uncallback); dcameraSourceCallback->OnNotifyRegResult(devId, dhId, reqId, status, dataStr); } diff --git a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonremoterequest_fuzzer/callbackonremoterequest_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonremoterequest_fuzzer/callbackonremoterequest_fuzzer.cpp index fc9ed0ad755b48d393866fe8a29f1bf84d48e30b..20d2ce26b9b050ad6deed059f7c784570edf3ae9 100644 --- a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonremoterequest_fuzzer/callbackonremoterequest_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/callbackonremoterequest_fuzzer/callbackonremoterequest_fuzzer.cpp @@ -46,6 +46,9 @@ void CallbackOnRemoteRequestFuzzTest(const uint8_t* data, size_t size) pdata.WriteString(dataStr); sptr dcameraSourceCallback(new (std::nothrow) DCameraSourceCallback()); + if (dcameraSourceCallback == nullptr) { + return; + } dcameraSourceCallback->OnRemoteRequest(code, pdata, reply, option); } } diff --git a/interfaces/inner_kits/native_cpp/test/unittest/common/camera_sink/dcamera_sink_handler_test.cpp b/interfaces/inner_kits/native_cpp/test/unittest/common/camera_sink/dcamera_sink_handler_test.cpp index cdec29242af56486a6ff2e4b532ddfd7213933a1..4223d55105fb5f3c9b00f2b06b31646df8878817 100644 --- a/interfaces/inner_kits/native_cpp/test/unittest/common/camera_sink/dcamera_sink_handler_test.cpp +++ b/interfaces/inner_kits/native_cpp/test/unittest/common/camera_sink/dcamera_sink_handler_test.cpp @@ -170,6 +170,9 @@ HWTEST_F(DCameraSinkHandlerTest, dcamera_sink_handler_test_005, TestSize.Level1) SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); sptr remoteObject = samgr->GetSystemAbility(systemAbilityId); sptr loadCallback(new DCameraSinkLoadCallback(params)); + if (loadCallback == nullptr) { + return; + } loadCallback->OnLoadSystemAbilitySuccess(systemAbilityId, remoteObject); remoteObject = nullptr; @@ -191,6 +194,9 @@ HWTEST_F(DCameraSinkHandlerTest, dcamera_sink_handler_test_006, TestSize.Level1) std::string params = "test006"; int32_t systemAbilityId = 4804; sptr loadCallback(new DCameraSinkLoadCallback(params)); + if (loadCallback == nullptr) { + return; + } loadCallback->OnLoadSystemAbilityFail(systemAbilityId); systemAbilityId = 1; @@ -257,6 +263,9 @@ HWTEST_F(DCameraSinkHandlerTest, dcamera_sink_handler_test_010, TestSize.Level1) SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); sptr remoteObject = samgr->GetSystemAbility(systemAbilityId); sptr loadCallback(new DCameraSinkLoadCallback(params)); + if (loadCallback == nullptr) { + return; + } loadCallback->OnLoadSystemAbilitySuccess(systemAbilityId, remoteObject); remoteObject = nullptr; diff --git a/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/callback/dcamera_source_callback_test.cpp b/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/callback/dcamera_source_callback_test.cpp index e050853077cc491fca49e9cfe0ac25a321a18833..b9b416287be492dbb22a9af30853bc1b81591114 100644 --- a/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/callback/dcamera_source_callback_test.cpp +++ b/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/callback/dcamera_source_callback_test.cpp @@ -143,6 +143,9 @@ HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_002, TestSize.L std::string reqId = "reqId"; int32_t status = 0; std::string data = "data"; + if (sourceCallback_ == nullptr) { + return; + } int32_t ret = sourceCallback_->OnNotifyRegResult(devId, dhId, reqId, status, data); EXPECT_EQ(DCAMERA_NOT_FOUND, ret); } @@ -180,6 +183,9 @@ HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_004, TestSize.L std::string reqId = "reqId"; int32_t status = 0; std::string data = "data"; + if (sourceCallback_ == nullptr) { + return; + } int32_t ret = sourceCallback_->OnNotifyUnregResult(devId, dhId, reqId, status, data); EXPECT_EQ(DCAMERA_NOT_FOUND, ret); } @@ -196,6 +202,9 @@ HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_005, TestSize.L std::string dhId = "dhId"; std::string reqId = "reqId"; std::string result = "result"; + if (sourceCallback_ == nullptr) { + return; + } int32_t ret = sourceCallback_->CheckParams(devId, dhId, reqId, result); EXPECT_EQ(false, ret); devId += std::string(DID_MAX_SIZE + 1, 'a'); @@ -243,6 +252,9 @@ HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_006, TestSize.L data.WriteString(devId); data.WriteString(dhId); data.WriteString(reqId); + if (sourceCallback_ == nullptr) { + return; + } int32_t ret = sourceCallback_->OnRemoteRequest(code, data, reply, option); EXPECT_NE(DCAMERA_OK, ret); code = DCameraSourceCallback::NOTIFY_REG_RESULT; @@ -298,6 +310,9 @@ HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_008, TestSize.L data.WriteString(reqId); data.WriteInt32(status); data.WriteString(result); + if (sourceCallback_ == nullptr) { + return; + } int32_t ret = sourceCallback_->NotifyUnregResultInner(data, reply); sourceCallback_->RegisterStateListener(nullptr); sourceCallback_->UnRegisterStateListener(); @@ -317,6 +332,9 @@ HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_009, TestSize.L std::string devId = "devId"; std::string dhId = "dhId"; int32_t status = 1; + if (sourceCallback_ == nullptr) { + return; + } int32_t ret = sourceCallback_->OnHardwareStateChanged(devId, dhId, status); EXPECT_EQ(DCAMERA_BAD_VALUE, ret); std::shared_ptr listener = @@ -354,6 +372,9 @@ HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_009, TestSize.L HWTEST_F(DCameraSourceCallbackTest, dcamera_source_callback_test_010, TestSize.Level1) { std::string devId = ""; + if (sourceCallback_ == nullptr) { + return; + } int32_t ret = sourceCallback_->OnDataSyncTrigger(devId); EXPECT_EQ(DCAMERA_BAD_VALUE, ret); devId += std::string(DID_MAX_SIZE + 1, 'a'); diff --git a/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/dcamera_source_handler_test.cpp b/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/dcamera_source_handler_test.cpp index 1908a0ee28db5d90de9a56ad34d9d0a7858d63b1..60ca4282d44759c0966d23c09ed15d3e45b4fa41 100644 --- a/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/dcamera_source_handler_test.cpp +++ b/interfaces/inner_kits/native_cpp/test/unittest/common/camera_source/dcamera_source_handler_test.cpp @@ -156,6 +156,9 @@ HWTEST_F(DCameraSourceHandlerTest, dcamera_source_handler_test_005, TestSize.Lev SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); sptr remoteObject = samgr->GetSystemAbility(systemAbilityId); sptr loadCallback(new DCameraSourceLoadCallback(params)); + if (loadCallback == nullptr) { + return; + } loadCallback->OnLoadSystemAbilitySuccess(systemAbilityId, remoteObject); remoteObject = nullptr; @@ -177,6 +180,9 @@ HWTEST_F(DCameraSourceHandlerTest, dcamera_source_handler_test_006, TestSize.Lev std::string params = "test006"; int32_t systemAbilityId = 4803; sptr loadCallback(new DCameraSourceLoadCallback(params)); + if (loadCallback == nullptr) { + return; + } loadCallback->OnLoadSystemAbilityFail(systemAbilityId); systemAbilityId = 1; diff --git a/services/cameraservice/base/src/dcamera_capture_info_cmd.cpp b/services/cameraservice/base/src/dcamera_capture_info_cmd.cpp index 1a008f319476e9a6415ca96519f5b5370c02b578..7b50b9ea406388edbc76c025976ae8f2f11bbb4d 100644 --- a/services/cameraservice/base/src/dcamera_capture_info_cmd.cpp +++ b/services/cameraservice/base/src/dcamera_capture_info_cmd.cpp @@ -36,12 +36,12 @@ int32_t DCameraCaptureInfoCmd::Marshal(std::string& jsonStr) cJSON_AddItemToObject(rootValue, "Value", captureInfos); for (auto iter = value_.begin(); iter != value_.end(); iter++) { cJSON *captureInfo = cJSON_CreateObject(); - if (captureInfo == nullptr) { + std::shared_ptr capture = *iter; + if (captureInfo == nullptr || capture == nullptr) { cJSON_Delete(rootValue); return DCAMERA_BAD_VALUE; } cJSON_AddItemToArray(captureInfos, captureInfo); - std::shared_ptr capture = *iter; cJSON_AddNumberToObject(captureInfo, "Width", capture->width_); cJSON_AddNumberToObject(captureInfo, "Height", capture->height_); cJSON_AddNumberToObject(captureInfo, "Format", capture->format_); @@ -156,6 +156,9 @@ int32_t DCameraCaptureInfoCmd::UmarshalValue(cJSON *rootValue) int32_t DCameraCaptureInfoCmd::UmarshalSettings(cJSON *valueJson, std::shared_ptr& captureInfo) { + if (captureInfo == nullptr) { + return DCAMERA_BAD_VALUE; + } cJSON *captureSetting = nullptr; cJSON_ArrayForEach(captureSetting, valueJson) { cJSON *settingType = cJSON_GetObjectItemCaseSensitive(captureSetting, "SettingType"); diff --git a/services/cameraservice/base/src/dcamera_event_cmd.cpp b/services/cameraservice/base/src/dcamera_event_cmd.cpp index 2c4c8873506e9897c5737959232e91148b4b315d..3a6805b054b79970a2ce17dfa2e93746ea4d8858 100644 --- a/services/cameraservice/base/src/dcamera_event_cmd.cpp +++ b/services/cameraservice/base/src/dcamera_event_cmd.cpp @@ -32,7 +32,7 @@ int32_t DCameraEventCmd::Marshal(std::string& jsonStr) cJSON_AddStringToObject(rootValue, "Command", command_.c_str()); cJSON *event = cJSON_CreateObject(); - if (event == nullptr) { + if (event == nullptr || value_ == nullptr) { cJSON_Delete(rootValue); return DCAMERA_BAD_VALUE; } diff --git a/services/cameraservice/base/src/dcamera_info_cmd.cpp b/services/cameraservice/base/src/dcamera_info_cmd.cpp index 0f950f7f7a45b4aec926536ce36a57b0ba966bef..ef3408c637eb23de3d2074e668be5851143c9e7d 100644 --- a/services/cameraservice/base/src/dcamera_info_cmd.cpp +++ b/services/cameraservice/base/src/dcamera_info_cmd.cpp @@ -33,7 +33,7 @@ int32_t DCameraInfoCmd::Marshal(std::string& jsonStr) cJSON_AddStringToObject(rootValue, "Command", command_.c_str()); cJSON *info = cJSON_CreateObject(); - if (info == nullptr) { + if (info == nullptr || value_ == nullptr) { cJSON_Delete(rootValue); return DCAMERA_BAD_VALUE; } diff --git a/services/cameraservice/base/src/dcamera_metadata_setting_cmd.cpp b/services/cameraservice/base/src/dcamera_metadata_setting_cmd.cpp index 8688b0bcb366d0ff31dd6e9ebecc3d2e4ab1912c..549e9a15bb772bc49e588ca2282f774d6ef9718f 100644 --- a/services/cameraservice/base/src/dcamera_metadata_setting_cmd.cpp +++ b/services/cameraservice/base/src/dcamera_metadata_setting_cmd.cpp @@ -40,7 +40,7 @@ int32_t DCameraMetadataSettingCmd::Marshal(std::string& jsonStr) cJSON_AddItemToObject(rootValue, "Value", settings); for (auto iter = value_.begin(); iter != value_.end(); iter++) { cJSON *setting = cJSON_CreateObject(); - if (setting == nullptr) { + if (setting == nullptr || (*iter) == nullptr) { cJSON_Delete(rootValue); return DCAMERA_BAD_VALUE; } diff --git a/services/cameraservice/base/src/dcamera_open_info_cmd.cpp b/services/cameraservice/base/src/dcamera_open_info_cmd.cpp index 3b92647690aa07af694db6bcb79156b71f5187e9..edd6629bc15332cc32b858228d2c739ea71c0c2b 100644 --- a/services/cameraservice/base/src/dcamera_open_info_cmd.cpp +++ b/services/cameraservice/base/src/dcamera_open_info_cmd.cpp @@ -33,7 +33,7 @@ int32_t DCameraOpenInfoCmd::Marshal(std::string& jsonStr) cJSON_AddStringToObject(rootValue, "Command", command_.c_str()); cJSON *openInfo = cJSON_CreateObject(); - if (openInfo == nullptr) { + if (openInfo == nullptr || value_ == nullptr) { cJSON_Delete(rootValue); return DCAMERA_BAD_VALUE; }