diff --git a/services/cameraservice/base/src/dcamera_capture_info_cmd.cpp b/services/cameraservice/base/src/dcamera_capture_info_cmd.cpp index 7b50b9ea406388edbc76c025976ae8f2f11bbb4d..4524d99bf6aba106b40726e2ab3393affd23cea3 100644 --- a/services/cameraservice/base/src/dcamera_capture_info_cmd.cpp +++ b/services/cameraservice/base/src/dcamera_capture_info_cmd.cpp @@ -35,12 +35,13 @@ int32_t DCameraCaptureInfoCmd::Marshal(std::string& jsonStr) CHECK_NULL_FREE_RETURN(captureInfos, DCAMERA_BAD_VALUE, rootValue); cJSON_AddItemToObject(rootValue, "Value", captureInfos); for (auto iter = value_.begin(); iter != value_.end(); iter++) { - cJSON *captureInfo = cJSON_CreateObject(); std::shared_ptr capture = *iter; - if (captureInfo == nullptr || capture == nullptr) { + if (capture == nullptr) { cJSON_Delete(rootValue); return DCAMERA_BAD_VALUE; } + cJSON *captureInfo = cJSON_CreateObject(); + CHECK_NULL_FREE_RETURN(captureInfo, DCAMERA_BAD_VALUE, rootValue); cJSON_AddItemToArray(captureInfos, captureInfo); cJSON_AddNumberToObject(captureInfo, "Width", capture->width_); cJSON_AddNumberToObject(captureInfo, "Height", capture->height_); diff --git a/services/cameraservice/base/src/dcamera_event_cmd.cpp b/services/cameraservice/base/src/dcamera_event_cmd.cpp index 3a6805b054b79970a2ce17dfa2e93746ea4d8858..ce25bf3b888bf9e85ba7f69bf527ff4626dc1ba5 100644 --- a/services/cameraservice/base/src/dcamera_event_cmd.cpp +++ b/services/cameraservice/base/src/dcamera_event_cmd.cpp @@ -23,6 +23,9 @@ namespace OHOS { namespace DistributedHardware { int32_t DCameraEventCmd::Marshal(std::string& jsonStr) { + if (value_ == nullptr) { + return DCAMERA_BAD_VALUE; + } cJSON *rootValue = cJSON_CreateObject(); if (rootValue == nullptr) { return DCAMERA_BAD_VALUE; @@ -32,7 +35,7 @@ int32_t DCameraEventCmd::Marshal(std::string& jsonStr) cJSON_AddStringToObject(rootValue, "Command", command_.c_str()); cJSON *event = cJSON_CreateObject(); - if (event == nullptr || value_ == nullptr) { + if (event == 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 ef3408c637eb23de3d2074e668be5851143c9e7d..5732ec5ff1f91d08c9e357d6aff4efcde1736f37 100644 --- a/services/cameraservice/base/src/dcamera_info_cmd.cpp +++ b/services/cameraservice/base/src/dcamera_info_cmd.cpp @@ -24,6 +24,9 @@ namespace OHOS { namespace DistributedHardware { int32_t DCameraInfoCmd::Marshal(std::string& jsonStr) { + if (value_ == nullptr) { + return DCAMERA_BAD_VALUE; + } cJSON *rootValue = cJSON_CreateObject(); if (rootValue == nullptr) { return DCAMERA_BAD_VALUE; @@ -33,7 +36,7 @@ int32_t DCameraInfoCmd::Marshal(std::string& jsonStr) cJSON_AddStringToObject(rootValue, "Command", command_.c_str()); cJSON *info = cJSON_CreateObject(); - if (info == nullptr || value_ == nullptr) { + if (info == 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 549e9a15bb772bc49e588ca2282f774d6ef9718f..468cbf2ac9ade9c1310e90ddd8c2df8216c92d42 100644 --- a/services/cameraservice/base/src/dcamera_metadata_setting_cmd.cpp +++ b/services/cameraservice/base/src/dcamera_metadata_setting_cmd.cpp @@ -39,8 +39,12 @@ int32_t DCameraMetadataSettingCmd::Marshal(std::string& jsonStr) } cJSON_AddItemToObject(rootValue, "Value", settings); for (auto iter = value_.begin(); iter != value_.end(); iter++) { + if ((*iter) == nullptr) { + cJSON_Delete(rootValue); + return DCAMERA_BAD_VALUE; + } cJSON *setting = cJSON_CreateObject(); - if (setting == nullptr || (*iter) == nullptr) { + if (setting == 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 edd6629bc15332cc32b858228d2c739ea71c0c2b..92ce18a9073bd0de94d764ba57a43f67c96206c7 100644 --- a/services/cameraservice/base/src/dcamera_open_info_cmd.cpp +++ b/services/cameraservice/base/src/dcamera_open_info_cmd.cpp @@ -24,6 +24,9 @@ namespace OHOS { namespace DistributedHardware { int32_t DCameraOpenInfoCmd::Marshal(std::string& jsonStr) { + if (value_ == nullptr) { + return DCAMERA_BAD_VALUE; + } cJSON *rootValue = cJSON_CreateObject(); if (rootValue == nullptr) { return DCAMERA_BAD_VALUE; @@ -33,7 +36,7 @@ int32_t DCameraOpenInfoCmd::Marshal(std::string& jsonStr) cJSON_AddStringToObject(rootValue, "Command", command_.c_str()); cJSON *openInfo = cJSON_CreateObject(); - if (openInfo == nullptr || value_ == nullptr) { + if (openInfo == nullptr) { cJSON_Delete(rootValue); return DCAMERA_BAD_VALUE; }