diff --git a/common/include/ipc/model/ipc_notify_auth_result_req.h b/common/include/ipc/model/ipc_notify_auth_result_req.h index 5fb8e53f78aca20315d93c35017763f2eb4122cb..afee8f6646ae85b00b0d3f09b2cf9c6fbbe786d7 100644 --- a/common/include/ipc/model/ipc_notify_auth_result_req.h +++ b/common/include/ipc/model/ipc_notify_auth_result_req.h @@ -66,9 +66,9 @@ public: } private: std::string deviceId_; - int32_t pinToken_; - int32_t status_; - int32_t reason_; + int32_t pinToken_ {0}; + int32_t status_ {0}; + int32_t reason_ {0}; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/common/include/ipc/model/ipc_notify_check_auth_result_req.h b/common/include/ipc/model/ipc_notify_check_auth_result_req.h index f98db1e21675349df0cecd13b21d8bd4ee7b84ac..0e153d560df96374e761fd468375decf4f23a42d 100644 --- a/common/include/ipc/model/ipc_notify_check_auth_result_req.h +++ b/common/include/ipc/model/ipc_notify_check_auth_result_req.h @@ -56,8 +56,8 @@ public: } private: std::string deviceId_; - int32_t result_; - int32_t flag_; + int32_t result_ {0}; + int32_t flag_ {0}; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/common/include/ipc/model/ipc_notify_device_found_req.h b/common/include/ipc/model/ipc_notify_device_found_req.h index 7ffb99d88876edb4efe90d1b4c59c1b84353eb62..6c094766023c581bcf8aca1ff6117cd70e4f34e0 100644 --- a/common/include/ipc/model/ipc_notify_device_found_req.h +++ b/common/include/ipc/model/ipc_notify_device_found_req.h @@ -45,7 +45,7 @@ public: subscribeId_ = subscribeId; } private: - uint16_t subscribeId_; + uint16_t subscribeId_ {0}; DmDeviceInfo dmDeviceInfo_; }; } // namespace DistributedHardware diff --git a/common/include/ipc/model/ipc_notify_device_state_req.h b/common/include/ipc/model/ipc_notify_device_state_req.h index 2ae13ea04e6b6fc1f2a3b3977323835ab64417b0..0f20867c5b8c96ee0ba062c32205829991eafd69 100644 --- a/common/include/ipc/model/ipc_notify_device_state_req.h +++ b/common/include/ipc/model/ipc_notify_device_state_req.h @@ -45,7 +45,7 @@ public: dmDeviceInfo_ = dmDeviceInfo; } private: - int32_t deviceState_; + int32_t deviceState_ {0}; DmDeviceInfo dmDeviceInfo_; }; } // namespace DistributedHardware diff --git a/common/include/ipc/model/ipc_notify_discover_result_req.h b/common/include/ipc/model/ipc_notify_discover_result_req.h index 00ea2e5d84d3eeb3fd536193d1a897809651f087..ea6776ed04730e7d71488d2fbec674435414a2a6 100644 --- a/common/include/ipc/model/ipc_notify_discover_result_req.h +++ b/common/include/ipc/model/ipc_notify_discover_result_req.h @@ -45,8 +45,8 @@ public: result_ = result; } private: - uint16_t subscribeId_; - int32_t result_; + uint16_t subscribeId_ {0}; + int32_t result_ {0}; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/common/include/ipc/model/ipc_set_useroperation_req.h b/common/include/ipc/model/ipc_set_useroperation_req.h index 7c7416955c0ea578d5aecad18a3cbcf4094a8446..e2f51db3f24940f296c6d6b72d75fc3354f51121 100644 --- a/common/include/ipc/model/ipc_set_useroperation_req.h +++ b/common/include/ipc/model/ipc_set_useroperation_req.h @@ -34,7 +34,7 @@ public: } private: - int32_t action_; + int32_t action_ {0}; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/common/include/ipc/model/ipc_stop_discovery_req.h b/common/include/ipc/model/ipc_stop_discovery_req.h index 3497ec6f386e478f0ad5005edcc89b8a557fc207..bf1de6b173a3db1aef4dc91b63a8be7ac7fe71a0 100644 --- a/common/include/ipc/model/ipc_stop_discovery_req.h +++ b/common/include/ipc/model/ipc_stop_discovery_req.h @@ -35,7 +35,7 @@ public: subscribeId_ = subscribeId; } private: - uint16_t subscribeId_; + uint16_t subscribeId_ {0}; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/services/devicemanagerservice/include/message/msg_request_auth.h b/services/devicemanagerservice/include/message/msg_request_auth.h index f38be9b9eff836899fe3d6ead8dac7102ce2620c..af6df707921cf0c0d589f902022ccd5772681aeb 100644 --- a/services/devicemanagerservice/include/message/msg_request_auth.h +++ b/services/devicemanagerservice/include/message/msg_request_auth.h @@ -30,7 +30,8 @@ namespace OHOS { namespace DistributedHardware { class MsgRequestAuth { public: - MsgRequestAuth() {}; + MsgRequestAuth() = default; + ~MsgRequestAuth() = default; MsgRequestAuth(std::string &token, std::string hostPkgName, std::string targetPkgName, const DmDeviceInfo &devReqInfo, const DmAppImageInfo &imageInfo, std::string &extras) : MsgRequestAuth( token, hostPkgName, targetPkgName, GROUP_VISIBILITY_IS_PRIVATE, devReqInfo, imageInfo, extras) {}; @@ -45,7 +46,7 @@ public: int32_t GetMsgCnt(); std::string GetRequestDeviceId(); public: - std::shared_ptr mHead_; + std::shared_ptr mHead_ {nullptr}; std::string mHostPkg_; std::string mTargetPkg_; std::string mDeviceName_; @@ -56,12 +57,12 @@ public: std::string mAppDescription_; std::string mAppIcon_; std::string mAppThumbnail_; - int32_t mAuthType_; - int32_t mGroupVisibility_; - int32_t mMsgSlice_; - int32_t mMsgCnt_ = 0; - int32_t mThumbnailSize_; - int32_t mAppIconSize_; + int32_t mAuthType_ {AUTH_TYPE_PIN}; + int32_t mGroupVisibility_ {GROUP_VISIBILITY_IS_PRIVATE}; + int32_t mMsgSlice_ {0}; + int32_t mMsgCnt_ {0}; + int32_t mThumbnailSize_ {0}; + int32_t mAppIconSize_ {0}; private: std::string ToHexString(int32_t value); std::string EncodeDevInfo(); diff --git a/services/devicemanagerservice/include/message/msg_response_auth.h b/services/devicemanagerservice/include/message/msg_response_auth.h index 8694aadbfe3eaa723ec01bd4da082bdc10b7b9da..cec27b713f2b74bc5022cb1b207481c08b5d6c2d 100644 --- a/services/devicemanagerservice/include/message/msg_response_auth.h +++ b/services/devicemanagerservice/include/message/msg_response_auth.h @@ -19,6 +19,7 @@ #include #include +#include "constants.h" #include "nlohmann/json.hpp" #include "msg_head.h" @@ -43,16 +44,15 @@ public: void SavePinCode(int32_t pinCode); int64_t GetRequestId(); std::vector GetSyncGroupList(); - private: - std::shared_ptr mHead_; - int32_t mReply_; + std::shared_ptr mHead_ {nullptr}; + int32_t mReply_ {SESSION_REPLY_UNKNOWN}; std::string mNetId_; std::string mGroupId_; std::string mGroupName_; std::string mDeviceId_; - int32_t mPinCode_; - int64_t mRequestId_; + int32_t mPinCode_ {-1}; + int64_t mRequestId_ {-1}; std::vector mSyncGroupList_; }; } diff --git a/services/devicemanagerservice/src/ipc/ipc_server_adapter.cpp b/services/devicemanagerservice/src/ipc/ipc_server_adapter.cpp index 095dcebda9de57eb02180784559f30aef4e872ff..240306ce540255a3edb2e027bd7d449ee9c28e3e 100644 --- a/services/devicemanagerservice/src/ipc/ipc_server_adapter.cpp +++ b/services/devicemanagerservice/src/ipc/ipc_server_adapter.cpp @@ -77,6 +77,9 @@ int32_t IpcServerAdapter::ModuleInit() int32_t IpcServerAdapter::GetTrustedDeviceList(std::string &pkgName, std::string &extra, DmDeviceInfo **info, int32_t *infoNum) { + if (info == nullptr || infoNum == nullptr) { + return DEVICEMANAGER_NULLPTR; + } DMLOG(DM_LOG_INFO, "In, pkgName: %s", pkgName.c_str()); NodeBasicInfo *nodeInfo = nullptr; int32_t ret = SoftbusAdapter::GetTrustDevices(pkgName, &nodeInfo, infoNum); @@ -91,11 +94,14 @@ int32_t IpcServerAdapter::GetTrustedDeviceList(std::string &pkgName, std::string for (int32_t i = 0; i < *infoNum; ++i) { NodeBasicInfo *nodeBasicInfo = nodeInfo + i; DmDeviceInfo *deviceInfo = *info + i; - - (void)memcpy_s(deviceInfo->deviceId, sizeof(deviceInfo->deviceId), nodeBasicInfo->networkId, - std::min(sizeof(deviceInfo->deviceId), sizeof(nodeBasicInfo->networkId))); - (void)memcpy_s(deviceInfo->deviceName, sizeof(deviceInfo->deviceName), nodeBasicInfo->deviceName, - std::min(sizeof(deviceInfo->deviceName), sizeof(nodeBasicInfo->deviceName))); + if (memcpy_s(deviceInfo->deviceId, sizeof(deviceInfo->deviceId), nodeBasicInfo->networkId, + std::min(sizeof(deviceInfo->deviceId), sizeof(nodeBasicInfo->networkId))) != DEVICEMANAGER_OK) { + DMLOG(DM_LOG_ERROR, "memcpy failed"); + } + if (memcpy_s(deviceInfo->deviceName, sizeof(deviceInfo->deviceName), nodeBasicInfo->deviceName, + std::min(sizeof(deviceInfo->deviceName), sizeof(nodeBasicInfo->deviceName))) != DEVICEMANAGER_OK) { + DMLOG(DM_LOG_ERROR, "memcpy failed"); + } deviceInfo->deviceTypeId = (DMDeviceType)nodeBasicInfo->deviceTypeId; } FreeNodeInfo(nodeInfo); diff --git a/services/devicemanagerservice/src/ipc/standard/ipc_cmd_parser.cpp b/services/devicemanagerservice/src/ipc/standard/ipc_cmd_parser.cpp index 9df2dadcda9bdc336d91ab78cbc4088ce6499f54..875202361e1440b92fea0d971b0c4cbbe6f3210c 100644 --- a/services/devicemanagerservice/src/ipc/standard/ipc_cmd_parser.cpp +++ b/services/devicemanagerservice/src/ipc/standard/ipc_cmd_parser.cpp @@ -229,8 +229,12 @@ ON_IPC_CMD(START_DEVICE_DISCOVER, MessageParcel &data, MessageParcel &reply) { std::string pkgName = data.ReadString(); DmSubscribeInfo *subscribeInfo = (DmSubscribeInfo *)data.ReadRawData(sizeof(DmSubscribeInfo)); - DMLOG(DM_LOG_INFO, "pkgName:%s, subscribeId: %d", pkgName.c_str(), subscribeInfo->subscribeId); - int32_t result = IpcServerAdapter::GetInstance().StartDeviceDiscovery(pkgName, *subscribeInfo); + int32_t result = DEVICEMANAGER_NULLPTR; + + if (subscribeInfo != nullptr) { + DMLOG(DM_LOG_INFO, "pkgName:%s, subscribeId: %d", pkgName.c_str(), subscribeInfo->subscribeId); + result = IpcServerAdapter::GetInstance().StartDeviceDiscovery(pkgName, *subscribeInfo); + } if (!reply.WriteInt32(result)) { DMLOG(DM_LOG_ERROR, "write result failed"); return DEVICEMANAGER_WRITE_FAILED; @@ -260,8 +264,12 @@ ON_IPC_CMD(AUTHENTICATE_DEVICE, MessageParcel &data, MessageParcel &reply) int32_t appThumbnailLen = data.ReadInt32(); uint8_t *appIcon = appIconLen > 0? (uint8_t *)data.ReadRawData(appIconLen) : nullptr; uint8_t *appThumbnail = appThumbnailLen > 0? (uint8_t *)data.ReadRawData(appThumbnailLen) : nullptr; - DmAppImageInfo imageInfo(appIcon, appIconLen, appThumbnail, appThumbnailLen); - int32_t result = IpcServerAdapter::GetInstance().AuthenticateDevice(pkgName, *deviceInfo, imageInfo, extra); + int32_t result = DEVICEMANAGER_NULLPTR; + + if (appIcon != nullptr && appThumbnail != nullptr) { + DmAppImageInfo imageInfo(appIcon, appIconLen, appThumbnail, appThumbnailLen); + result = IpcServerAdapter::GetInstance().AuthenticateDevice(pkgName, *deviceInfo, imageInfo, extra); + } if (!reply.WriteInt32(result)) { DMLOG(DM_LOG_ERROR, "write result failed"); return DEVICEMANAGER_WRITE_FAILED; diff --git a/services/devicemanagerservice/src/softbus/softbus_adapter.cpp b/services/devicemanagerservice/src/softbus/softbus_adapter.cpp index d855b7eb18f03f0c6b3f22ad760eaeed3215c59c..de85815c850c96a00f3ceec030a2eb3caae98c98 100644 --- a/services/devicemanagerservice/src/softbus/softbus_adapter.cpp +++ b/services/devicemanagerservice/src/softbus/softbus_adapter.cpp @@ -42,7 +42,7 @@ namespace DistributedHardware { namespace { const std::string DEVICE_MANAGER_PACKAGE_NAME = "com.huawei.devicemanager"; const int32_t CHECK_INTERVAL = 100000; // 100ms -const int32_t SUBSCRIBE_ID_PREFIX_LEN = 16; +const uint32_t SUBSCRIBE_ID_PREFIX_LEN = 16; const int32_t SUBSCRIBE_ID_MASK = 0x0000FFFF; const int32_t DISCOVER_DEVICEINFO_MAX_SIZE = 20; } @@ -483,20 +483,28 @@ ConnectionAddr *SoftbusAdapter::GetConnectAddr(std::string deviceId) void SoftbusAdapter::NodeBasicInfoCopyToDmDevice(DmDeviceInfo &dmDeviceInfo, NodeBasicInfo &nodeBasicInfo) { (void)memset_s(&dmDeviceInfo, sizeof(DmDeviceInfo), 0, sizeof(DmDeviceInfo)); - (void)memcpy_s(dmDeviceInfo.deviceId, sizeof(dmDeviceInfo.deviceId), nodeBasicInfo.networkId, - std::min(sizeof(dmDeviceInfo.deviceId), sizeof(nodeBasicInfo.networkId))); - (void)memcpy_s(dmDeviceInfo.deviceName, sizeof(dmDeviceInfo.deviceName), nodeBasicInfo.deviceName, - std::min(sizeof(dmDeviceInfo.deviceName), sizeof(nodeBasicInfo.deviceName))); + if (memcpy_s(dmDeviceInfo.deviceId, sizeof(dmDeviceInfo.deviceId), nodeBasicInfo.networkId, + std::min(sizeof(dmDeviceInfo.deviceId), sizeof(nodeBasicInfo.networkId))) != DEVICEMANAGER_OK) { + DMLOG(DM_LOG_ERROR, "memcpy failed"); + } + if (memcpy_s(dmDeviceInfo.deviceName, sizeof(dmDeviceInfo.deviceName), nodeBasicInfo.deviceName, + std::min(sizeof(dmDeviceInfo.deviceName), sizeof(nodeBasicInfo.deviceName))) != DEVICEMANAGER_OK) { + DMLOG(DM_LOG_ERROR, "memcpy failed"); + } dmDeviceInfo.deviceTypeId = (DMDeviceType)nodeBasicInfo.deviceTypeId; } void SoftbusAdapter::DeviceInfoCopyToDmDevice(DmDeviceInfo &dmDeviceInfo, const DeviceInfo &deviceInfo) { (void)memset_s(&dmDeviceInfo, sizeof(DmDeviceInfo), 0, sizeof(DmDeviceInfo)); - (void)memcpy_s(dmDeviceInfo.deviceId, sizeof(dmDeviceInfo.deviceId), deviceInfo.devId, - std::min(sizeof(dmDeviceInfo.deviceId), sizeof(deviceInfo.devId))); - (void)memcpy_s(dmDeviceInfo.deviceName, sizeof(dmDeviceInfo.deviceName), deviceInfo.devName, - std::min(sizeof(dmDeviceInfo.deviceName), sizeof(deviceInfo.devName))); + if (memcpy_s(dmDeviceInfo.deviceId, sizeof(dmDeviceInfo.deviceId), deviceInfo.devId, + std::min(sizeof(dmDeviceInfo.deviceId), sizeof(deviceInfo.devId))) != DEVICEMANAGER_OK) { + DMLOG(DM_LOG_ERROR, "memcpy failed"); + } + if (memcpy_s(dmDeviceInfo.deviceName, sizeof(dmDeviceInfo.deviceName), deviceInfo.devName, + std::min(sizeof(dmDeviceInfo.deviceName), sizeof(deviceInfo.devName))) != DEVICEMANAGER_OK) { + DMLOG(DM_LOG_ERROR, "memcpy failed"); + } dmDeviceInfo.deviceTypeId = (DMDeviceType)deviceInfo.devType; }