From d6359833016b02a29c61c47512e0aca495be7f13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Sat, 20 Jul 2024 19:01:13 +0800 Subject: [PATCH 1/5] =?UTF-8?q?L2=E5=86=85=E5=AD=98=E6=B3=84=E6=BC=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- .../service/src/softbus/softbus_listener.cpp | 48 ++++++++----------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/services/service/src/softbus/softbus_listener.cpp b/services/service/src/softbus/softbus_listener.cpp index 901c7b26..13ac3947 100644 --- a/services/service/src/softbus/softbus_listener.cpp +++ b/services/service/src/softbus/softbus_listener.cpp @@ -576,17 +576,11 @@ int32_t SoftbusListener::GetTrustedDeviceList(std::vector &deviceI LOGE("[SOFTBUS]GetAllNodeDeviceInfo failed, ret: %d.", ret); return ERR_DM_FAILED; } - DmDeviceInfo *info = static_cast(malloc(sizeof(DmDeviceInfo) * (deviceCount))); - if (info == nullptr) { - FreeNodeInfo(nodeInfo); - return ERR_DM_MALLOC_FAILED; - } - DmDeviceInfo **pInfoList = &info; for (int32_t i = 0; i < deviceCount; ++i) { NodeBasicInfo *nodeBasicInfo = nodeInfo + i; - DmDeviceInfo *deviceInfo = *pInfoList + i; - ConvertNodeBasicInfoToDmDevice(*nodeBasicInfo, *deviceInfo); - deviceInfoList.push_back(*deviceInfo); + DmDeviceInfo deviceInfo; + ConvertNodeBasicInfoToDmDevice(*nodeBasicInfo, deviceInfo); + deviceInfoList.push_back(deviceInfo); } radarInfo.stageRes = static_cast(StageRes::STAGE_SUCC); if (deviceCount > 0 && IsDmRadarHelperReady() && GetDmRadarHelperObj() != nullptr) { @@ -596,7 +590,6 @@ int32_t SoftbusListener::GetTrustedDeviceList(std::vector &deviceI } } FreeNodeInfo(nodeInfo); - free(info); LOGI("GetTrustDevices success, deviceCount: %d.", deviceCount); return ret; } @@ -610,20 +603,13 @@ int32_t SoftbusListener::GetAvailableDeviceList(std::vector & LOGE("[SOFTBUS]GetAllNodeDeviceInfo failed, ret: %d.", ret); return ERR_DM_FAILED; } - DmDeviceBasicInfo *info = static_cast(malloc(sizeof(DmDeviceBasicInfo) * (deviceCount))); - if (info == nullptr) { - FreeNodeInfo(nodeInfo); - return ERR_DM_MALLOC_FAILED; - } - DmDeviceBasicInfo **pInfoList = &info; for (int32_t i = 0; i < deviceCount; ++i) { NodeBasicInfo *nodeBasicInfo = nodeInfo + i; - DmDeviceBasicInfo *deviceBasicInfo = *pInfoList + i; - ConvertNodeBasicInfoToDmDevice(*nodeBasicInfo, *deviceBasicInfo); - deviceBasicInfoList.push_back(*deviceBasicInfo); + DmDeviceBasicInfo deviceBasicInfo; + ConvertNodeBasicInfoToDmDevice(*nodeBasicInfo, deviceBasicInfo); + deviceBasicInfoList.push_back(deviceBasicInfo); } FreeNodeInfo(nodeInfo); - free(info); LOGI("GetAvailableDevices success, deviceCount: %d.", deviceCount); return ret; } @@ -748,23 +734,27 @@ int32_t SoftbusListener::ConvertNodeBasicInfoToDmDevice(const NodeBasicInfo &nod if (memcpy_s(devInfo.networkId, sizeof(devInfo.networkId), nodeInfo.networkId, std::min(sizeof(devInfo.networkId), sizeof(nodeInfo.networkId))) != DM_OK) { LOGE("ConvertNodeBasicInfoToDmDevice copy networkId data failed."); + return ERR_DM_FAILED; } if (memcpy_s(devInfo.deviceName, sizeof(devInfo.deviceName), nodeInfo.deviceName, std::min(sizeof(devInfo.deviceName), sizeof(nodeInfo.deviceName))) != DM_OK) { LOGE("ConvertNodeBasicInfoToDmDevice copy deviceName data failed."); + return ERR_DM_FAILED; } + + char osVersion[OS_VERSION_BUF_LEN + 1] = {0}; + if (memcpy_s(osVersion, OS_VERSION_BUF_LEN + 1, nodeInfo.osVersion, + OS_VERSION_BUF_LEN) != DM_OK) { + LOGE("ConvertNodeBasicInfoToDmDevice copy deviceName data failed."); + return ERR_DM_FAILED; + } + devInfo.deviceTypeId = nodeInfo.deviceTypeId; - std::string extraData = devInfo.extraData; nlohmann::json extraJson; - if (!extraData.empty()) { - extraJson = nlohmann::json::parse(extraData, nullptr, false); - } - if (!extraJson.is_discarded()) { - extraJson[PARAM_KEY_OS_TYPE] = nodeInfo.osType; - extraJson[PARAM_KEY_OS_VERSION] = std::string(nodeInfo.osVersion); - devInfo.extraData = to_string(extraJson); - } + extraJson[PARAM_KEY_OS_TYPE] = nodeInfo.osType; + extraJson[PARAM_KEY_OS_VERSION] = std::string(osVersion); + devInfo.extraData = to_string(extraJson); return DM_OK; } -- Gitee From 0a050f6be47475987078f7b62a4ed29d9aeedee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Sat, 20 Jul 2024 21:25:00 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- services/service/src/softbus/softbus_listener.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/service/src/softbus/softbus_listener.cpp b/services/service/src/softbus/softbus_listener.cpp index 13ac3947..0586a0c4 100644 --- a/services/service/src/softbus/softbus_listener.cpp +++ b/services/service/src/softbus/softbus_listener.cpp @@ -746,7 +746,7 @@ int32_t SoftbusListener::ConvertNodeBasicInfoToDmDevice(const NodeBasicInfo &nod char osVersion[OS_VERSION_BUF_LEN + 1] = {0}; if (memcpy_s(osVersion, OS_VERSION_BUF_LEN + 1, nodeInfo.osVersion, OS_VERSION_BUF_LEN) != DM_OK) { - LOGE("ConvertNodeBasicInfoToDmDevice copy deviceName data failed."); + LOGE("ConvertNodeBasicInfoToDmDevice copy osVersion data failed."); return ERR_DM_FAILED; } -- Gitee From 47b33af5b2ab406877900a7d8e49ae4b731e3c40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Tue, 23 Jul 2024 10:40:39 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=8E=BB=E9=99=A4dp=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- services/service/src/device_manager_service.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/services/service/src/device_manager_service.cpp b/services/service/src/device_manager_service.cpp index 452f62bd..468a4a38 100755 --- a/services/service/src/device_manager_service.cpp +++ b/services/service/src/device_manager_service.cpp @@ -128,6 +128,21 @@ int32_t DeviceManagerService::GetTrustedDeviceList(const std::string &pkgName, c return ret; } +#ifdef MINE_HARMONY + if (onlineDeviceList.size() > 0 && IsDMServiceImplReady()) { + for (auto item : onlineDeviceList) { + std::string udid = ""; + SoftbusListener::GetUdidByNetworkId(item.networkId, udid); + std::string deviceIdHash = ""; + dmServiceImpl_->GetUdidHashByNetWorkId(item.networkId, deviceIdHash); + if (memcpy_s(item.deviceId, DM_MAX_DEVICE_ID_LEN, deviceIdHash.c_str(), deviceIdHash.length()) != 0) { + LOGE("get deviceId: %s failed", GetAnonyString(deviceIdHash).c_str()); + } + deviceList.push_back(item); + } + LOGI("Current available device size: %d.", deviceList.size()); + } +#else if (onlineDeviceList.size() > 0 && IsDMServiceImplReady()) { std::map udidMap = dmServiceImpl_->GetAppTrustDeviceIdList(pkgName); for (auto item : onlineDeviceList) { @@ -145,6 +160,7 @@ int32_t DeviceManagerService::GetTrustedDeviceList(const std::string &pkgName, c } LOGI("Current app available device size: %d.", deviceList.size()); } +#endif return DM_OK; } -- Gitee From 0cbcd09d7b74bdae2a4ea012f33ae8b911cd428d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Tue, 23 Jul 2024 11:39:39 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=85=E5=AD=98?= =?UTF-8?q?=E6=B3=84=E6=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- radar/src/dm_radar_helper.cpp | 24 +++++++++++++++++++++--- radar/src/lite/dm_radar_helper.cpp | 27 +++++++++++++++++++++++---- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/radar/src/dm_radar_helper.cpp b/radar/src/dm_radar_helper.cpp index bae04984..80663a63 100644 --- a/radar/src/dm_radar_helper.cpp +++ b/radar/src/dm_radar_helper.cpp @@ -636,9 +636,18 @@ std::string DmRadarHelper::ConvertHexToString(uint16_t hex) std::string DmRadarHelper::GetDeviceInfoList(std::vector &deviceInfoList) { - cJSON* deviceInfoJson = cJSON_CreateArray(); + cJSON *deviceInfoJson = cJSON_CreateArray(); + if (deviceInfoJson == nullptr) { + LOGE("deviceInfoJson is nullptr."); + return ""; + } for (size_t i = 0; i < deviceInfoList.size(); i++) { - cJSON* object = cJSON_CreateObject(); + cJSON *object = cJSON_CreateObject(); + if (object == nullptr) { + LOGE("object is nullptr."); + cJSON_Delete(deviceInfoJson); + return ""; + } std::string udidHash = GetUdidHashByUdid(std::string(deviceInfoList[i].deviceId)); cJSON_AddStringToObject(object, "PEER_UDID", udidHash.c_str()); std::string peerNetId = GetAnonyUdid(deviceInfoList[i].networkId); @@ -648,7 +657,16 @@ std::string DmRadarHelper::GetDeviceInfoList(std::vector &deviceIn cJSON_AddStringToObject(object, "PEER_DEV_NAME", deviceInfoList[i].deviceName); cJSON_AddItemToArray(deviceInfoJson, object); } - return std::string(cJSON_PrintUnformatted(deviceInfoJson)); + char *deviceInfoStr = cJSON_PrintUnformatted(deviceInfoJson); + if (deviceInfoStr == nullptr) { + LOGE("deviceInfoStr is nullptr."); + cJSON_Delete(deviceInfoJson); + return ""; + } + std::string devInfoStr = std::string(deviceInfoStr); + cJSON_Delete(deviceInfoJson); + cJSON_free(deviceInfoStr); + return devInfoStr; } std::string DmRadarHelper::GetUdidHashByUdid(std::string udid) diff --git a/radar/src/lite/dm_radar_helper.cpp b/radar/src/lite/dm_radar_helper.cpp index 5b4f1c67..f69e55d5 100644 --- a/radar/src/lite/dm_radar_helper.cpp +++ b/radar/src/lite/dm_radar_helper.cpp @@ -134,18 +134,37 @@ std::string DmRadarHelper::ConvertHexToString(uint16_t hex) std::string DmRadarHelper::GetDeviceInfoList(std::vector &deviceInfoList) { - cJSON* deviceInfoJson = cJSON_CreateArray(); + cJSON *deviceInfoJson = cJSON_CreateArray(); + if (deviceInfoJson == nullptr) { + LOGE("deviceInfoJson is nullptr."); + return ""; + } for (size_t i = 0; i < deviceInfoList.size(); i++) { - cJSON* object = cJSON_CreateObject(); + cJSON *object = cJSON_CreateObject(); + if (object == nullptr) { + LOGE("object is nullptr."); + cJSON_Delete(deviceInfoJson); + return ""; + } std::string udidHash = GetUdidHashByUdid(std::string(deviceInfoList[i].deviceId)); cJSON_AddStringToObject(object, "PEER_UDID", udidHash.c_str()); - cJSON_AddStringToObject(object, "PEER_NET_ID", deviceInfoList[i].networkId); + std::string peerNetId = GetAnonyUdid(deviceInfoList[i].networkId); + cJSON_AddStringToObject(object, "PEER_NET_ID", peerNetId.c_str()); std::string devType = ConvertHexToString(deviceInfoList[i].deviceTypeId); cJSON_AddStringToObject(object, "PEER_DEV_TYPE", devType.c_str()); cJSON_AddStringToObject(object, "PEER_DEV_NAME", deviceInfoList[i].deviceName); cJSON_AddItemToArray(deviceInfoJson, object); } - return std::string(cJSON_PrintUnformatted(deviceInfoJson)); + char *deviceInfoStr = cJSON_PrintUnformatted(deviceInfoJson); + if (deviceInfoStr == nullptr) { + LOGE("deviceInfoStr is nullptr."); + cJSON_Delete(deviceInfoJson); + return ""; + } + std::string devInfoStr = std::string(deviceInfoStr); + cJSON_Delete(deviceInfoJson); + cJSON_free(deviceInfoStr); + return devInfoStr; } std::string DmRadarHelper::GetUdidHashByUdid(std::string udid) -- Gitee From d53f208a8a44f362a30b8bacf5a4d1da4f55fc47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=E6=99=93=E6=99=93?= Date: Tue, 23 Jul 2024 12:24:35 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 史晓晓 --- services/service/src/device_manager_service.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/services/service/src/device_manager_service.cpp b/services/service/src/device_manager_service.cpp index 468a4a38..ae12e0fe 100755 --- a/services/service/src/device_manager_service.cpp +++ b/services/service/src/device_manager_service.cpp @@ -131,14 +131,12 @@ int32_t DeviceManagerService::GetTrustedDeviceList(const std::string &pkgName, c #ifdef MINE_HARMONY if (onlineDeviceList.size() > 0 && IsDMServiceImplReady()) { for (auto item : onlineDeviceList) { - std::string udid = ""; - SoftbusListener::GetUdidByNetworkId(item.networkId, udid); - std::string deviceIdHash = ""; - dmServiceImpl_->GetUdidHashByNetWorkId(item.networkId, deviceIdHash); - if (memcpy_s(item.deviceId, DM_MAX_DEVICE_ID_LEN, deviceIdHash.c_str(), deviceIdHash.length()) != 0) { - LOGE("get deviceId: %s failed", GetAnonyString(deviceIdHash).c_str()); - } - deviceList.push_back(item); + std::string deviceIdHash = ""; + dmServiceImpl_->GetUdidHashByNetWorkId(item.networkId, deviceIdHash); + if (memcpy_s(item.deviceId, DM_MAX_DEVICE_ID_LEN, deviceIdHash.c_str(), deviceIdHash.length()) != 0) { + LOGE("get deviceId: %s failed", GetAnonyString(deviceIdHash).c_str()); + } + deviceList.push_back(item); } LOGI("Current available device size: %d.", deviceList.size()); } -- Gitee