diff --git a/common/src/ipc/standard/ipc_model_codec.cpp b/common/src/ipc/standard/ipc_model_codec.cpp index 2e336c5fd53edbeca9293ec8f9539a453c9c91c8..d5376c7d5d630073c9c73e3d231d2a1c53d9f8b8 100644 --- a/common/src/ipc/standard/ipc_model_codec.cpp +++ b/common/src/ipc/standard/ipc_model_codec.cpp @@ -426,6 +426,10 @@ bool IpcModelCodec::DecodeLocalServiceInfos(MessageParcel &parcel, std::vector IPC_VECTOR_MAX_SIZE || num < 0) { + LOGE("num is Invalid value, num = %{public}u", num); + return false; + } for (uint32_t k = 0; k < num; k++) { DMLocalServiceInfo serviceInfo; bRet = DecodeLocalServiceInfo(parcel, serviceInfo); @@ -482,7 +486,7 @@ bool IpcModelCodec::DecodeStringVector(MessageParcel &parcel, std::vector IPC_VECTOR_MAX_SIZE) { + if (num > IPC_VECTOR_MAX_SIZE || num < 0) { LOGE("num is Invalid value, num = %{public}u", num); return false; } diff --git a/services/implementation/include/ability/dm_dialog_manager.h b/services/implementation/include/ability/dm_dialog_manager.h index 2b2ad90f20a2cf3373d629ac12a279d889cc52b6..22f002b956df2729c66f600d847ce50ca3300dfc 100644 --- a/services/implementation/include/ability/dm_dialog_manager.h +++ b/services/implementation/include/ability/dm_dialog_manager.h @@ -56,8 +56,8 @@ private: std::string customDescriptionStr_; std::string pinCode_; std::string hostPkgLabel_; - int32_t deviceType_; - bool isProxyBind_; + int32_t deviceType_ = -1; + bool isProxyBind_ = false; std::string appUserData_; std::string title_; std::mutex mutex_;