From 41db26228a4e130c9e4e19c4ea372012b3ba2271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=83=B3=E4=B8=8D=E5=87=BA=E5=88=AB=E5=90=8D?= Date: Tue, 14 Sep 2021 17:49:50 +0800 Subject: [PATCH] codex MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 想不出别名 --- .../ipc/model/ipc_notify_auth_result_req.h | 6 ++--- .../model/ipc_notify_check_auth_result_req.h | 4 +-- .../ipc/model/ipc_notify_device_found_req.h | 2 +- .../ipc/model/ipc_notify_device_state_req.h | 2 +- .../model/ipc_notify_discover_result_req.h | 4 +-- .../ipc/model/ipc_set_useroperation_req.h | 2 +- .../ipc/model/ipc_stop_discovery_req.h | 2 +- .../include/message/msg_request_auth.h | 17 ++++++------ .../include/message/msg_response_auth.h | 10 +++---- .../src/ipc/ipc_server_adapter.cpp | 16 ++++++++---- .../src/ipc/standard/ipc_cmd_parser.cpp | 16 +++++++++--- .../src/softbus/softbus_adapter.cpp | 26 ++++++++++++------- 12 files changed, 65 insertions(+), 42 deletions(-) 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 5fb8e53f7..afee8f664 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 f98db1e21..0e153d560 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 7ffb99d88..6c0947660 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 2ae13ea04..0f20867c5 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 00ea2e5d8..ea6776ed0 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 7c7416955..e2f51db3f 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 3497ec6f3..bf1de6b17 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 f38be9b9e..af6df7079 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 8694aadbf..cec27b713 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 095dcebda..240306ce5 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 9df2dadcd..875202361 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 d855b7eb1..de85815c8 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; } -- Gitee