diff --git a/interfaces/inner_kits/native_cpp/include/dm_app_image_info.h b/interfaces/inner_kits/native_cpp/include/dm_app_image_info.h index d088ce58a0fce854ef8b5e6ea746c1672200bc16..d98d9b791e18686fea56d6ce432c447ae013f682 100644 --- a/interfaces/inner_kits/native_cpp/include/dm_app_image_info.h +++ b/interfaces/inner_kits/native_cpp/include/dm_app_image_info.h @@ -144,7 +144,9 @@ private: } if (appIcon != nullptr) { appIconLen = appIconLen_; - (void)memcpy_s(appIcon, appIconLen, appIcon_, appIconLen_); + if (memcpy_s(appIcon, appIconLen, appIcon_, appIconLen_) != 0) { + return; + } } } } @@ -162,7 +164,9 @@ private: } if (appThumbnail != nullptr) { appThumbnailLen = appThumbnailLen_; - (void)memcpy_s(appThumbnail, appThumbnailLen, appThumbnail_, appThumbnailLen_); + if (memcpy_s(appThumbnail, appThumbnailLen, appThumbnail_, appThumbnailLen_) != 0) { + return; + } } } } diff --git a/interfaces/kits/js/src/native_devicemanager_js.cpp b/interfaces/kits/js/src/native_devicemanager_js.cpp index a555fc5828538984db65c5cc7c6aa189e7a8c7a3..67bd749b06cc7a0480157d1b5e69a5cf19e14282 100644 --- a/interfaces/kits/js/src/native_devicemanager_js.cpp +++ b/interfaces/kits/js/src/native_devicemanager_js.cpp @@ -216,11 +216,11 @@ DeviceManagerNapi *DeviceManagerNapi::GetDeviceManagerNapi(std::string &buldleNa void DeviceManagerNapi::OnDeviceStateChange(DmNapiDevStateChangeAction action, const DmDeviceInfo &deviceInfo) { - napi_value result; + napi_value result = nullptr; napi_create_object(env_, &result); SetValueInt32(env_, "action", (int)action, result); - napi_value device; + napi_value device = nullptr; napi_create_object(env_, &device); SetValueUtf8String(env_, "deviceId", deviceInfo.deviceId, device); SetValueUtf8String(env_, "deviceName", deviceInfo.deviceName, device); @@ -233,11 +233,11 @@ void DeviceManagerNapi::OnDeviceStateChange(DmNapiDevStateChangeAction action, c void DeviceManagerNapi::OnDeviceFound(uint16_t subscribeId, const DmDeviceInfo &deviceInfo) { DMLOG(DM_LOG_INFO, "OnDeviceFound for subscribeId %d", (int32_t)subscribeId); - napi_value result; + napi_value result = nullptr; napi_create_object(env_, &result); SetValueInt32(env_, "subscribeId", (int)subscribeId, result); - napi_value device; + napi_value device = nullptr; napi_create_object(env_, &device); SetValueUtf8String(env_, "deviceId", deviceInfo.deviceId, device); SetValueUtf8String(env_, "deviceName", deviceInfo.deviceName, device); @@ -250,7 +250,7 @@ void DeviceManagerNapi::OnDeviceFound(uint16_t subscribeId, const DmDeviceInfo & void DeviceManagerNapi::OnDiscoverFailed(uint16_t subscribeId, int32_t failedReason) { DMLOG(DM_LOG_INFO, "OnDiscoverFailed for subscribeId %d", (int32_t)subscribeId); - napi_value result; + napi_value result = nullptr; napi_create_object(env_, &result); SetValueInt32(env_, "subscribeId", (int)subscribeId, result); SetValueInt32(env_, "reason", (int)failedReason, result); @@ -260,7 +260,7 @@ void DeviceManagerNapi::OnDiscoverFailed(uint16_t subscribeId, int32_t failedRea void DeviceManagerNapi::OnDmfaCall(const std::string ¶mJson) { DMLOG(DM_LOG_INFO, "OnCall for paramJson"); - napi_value result; + napi_value result = nullptr; napi_create_object(env_, &result); SetValueUtf8String(env_, "param", paramJson, result); OnEvent("dmFaCallback", DM_NAPI_ARGS_ONE, &result); @@ -333,7 +333,7 @@ void DeviceManagerNapi::OnVerifyResult(const std::string &deviceId, int32_t resu void DeviceManagerNapi::SetValueUtf8String(const napi_env &env, const std::string &fieldStr, const std::string &str, napi_value &result) { - napi_value value; + napi_value value = nullptr; napi_create_string_utf8(env, str.c_str(), NAPI_AUTO_LENGTH, &value); napi_set_named_property(env, result, fieldStr.c_str(), value); } @@ -341,7 +341,7 @@ void DeviceManagerNapi::SetValueUtf8String(const napi_env &env, const std::strin void DeviceManagerNapi::SetValueInt32(const napi_env &env, const std::string &fieldStr, const int32_t intValue, napi_value &result) { - napi_value value; + napi_value value = nullptr; napi_create_int32(env, intValue, &value); napi_set_named_property(env, result, fieldStr.c_str(), value); } @@ -350,7 +350,7 @@ void DeviceManagerNapi::DeviceInfoToJsArray(const napi_env &env, const std::vector &vecDevInfo, const int32_t idx, napi_value &arrayResult) { - napi_value result; + napi_value result = nullptr; napi_create_object(env, &result); SetValueUtf8String(env, "deviceId", vecDevInfo[idx].deviceId, result); @@ -369,7 +369,7 @@ void DeviceManagerNapi::DmAuthParamToJsAuthParamy(const napi_env &env, DMLOG(DM_LOG_INFO, "DmAuthParamToJsAuthParamy in"); SetValueInt32(env, "authType", authParam.authType, paramResult); - napi_value extraInfo; + napi_value extraInfo = nullptr; napi_create_object(env, &extraInfo); SetValueInt32(env, "direction", authParam.direction, extraInfo); SetValueInt32(env, "pinToken", authParam.pinToken, extraInfo); @@ -420,8 +420,8 @@ void DeviceManagerNapi::JsObjectToString(const napi_env &env, const napi_value & bool hasProperty = false; NAPI_CALL_RETURN_VOID(env, napi_has_named_property(env, object, fieldStr.c_str(), &hasProperty)); if (hasProperty) { - napi_value field; - napi_valuetype valueType; + napi_value field = nullptr; + napi_valuetype valueType = napi_undefined; napi_get_named_property(env, object, fieldStr.c_str(), &field); NAPI_CALL_RETURN_VOID(env, napi_typeof(env, field, &valueType)); @@ -467,8 +467,8 @@ void DeviceManagerNapi::JsObjectToInt(const napi_env &env, const napi_value &obj bool hasProperty = false; NAPI_CALL_RETURN_VOID(env, napi_has_named_property(env, object, fieldStr.c_str(), &hasProperty)); if (hasProperty) { - napi_value field; - napi_valuetype valueType; + napi_value field = nullptr; + napi_valuetype valueType = napi_undefined; napi_get_named_property(env, object, fieldStr.c_str(), &field); NAPI_CALL_RETURN_VOID(env, napi_typeof(env, field, &valueType)); @@ -485,8 +485,8 @@ void DeviceManagerNapi::JsObjectToBool(const napi_env &env, const napi_value &ob bool hasProperty = false; NAPI_CALL_RETURN_VOID(env, napi_has_named_property(env, object, fieldStr.c_str(), &hasProperty)); if (hasProperty) { - napi_value field; - napi_valuetype valueType; + napi_value field = nullptr; + napi_valuetype valueType = napi_undefined; napi_get_named_property(env, object, fieldStr.c_str(), &field); NAPI_CALL_RETURN_VOID(env, napi_typeof(env, field, &valueType)); @@ -588,9 +588,9 @@ void DeviceManagerNapi::JsToDmBuffer(const napi_env &env, const napi_value &obje return; } - napi_value field; + napi_value field = nullptr; napi_get_named_property(env, object, fieldStr.c_str(), &field); - napi_typedarray_type type; + napi_typedarray_type type = napi_uint8_array; size_t length = 0; napi_value buffer = nullptr; size_t offset = 0; @@ -626,7 +626,7 @@ void DeviceManagerNapi::JsToJsonObject(const napi_env &env, const napi_value &ob return; } - napi_value jsonField; + napi_value jsonField = nullptr; napi_get_named_property(env, object, fieldStr.c_str(), &jsonField); napi_valuetype jsValueType = napi_undefined; napi_value jsProNameList = nullptr; @@ -794,7 +794,7 @@ napi_value DeviceManagerNapi::SetUserOperationSync(napi_env env, napi_callback_i { DMLOG(DM_LOG_INFO, "SetUserOperationSync in"); GET_PARAMS(env, info, DM_NAPI_ARGS_ONE); - napi_valuetype valueType; + napi_valuetype valueType = napi_undefined; napi_typeof(env, argv[0], &valueType); NAPI_ASSERT(env, valueType == napi_number, "Wrong argument type. Object expected."); @@ -883,7 +883,7 @@ napi_value DeviceManagerNapi::StartDeviceDiscoverSync(napi_env env, napi_callbac DMLOG(DM_LOG_INFO, "StartDeviceDiscoverSync in"); GET_PARAMS(env, info, DM_NAPI_ARGS_ONE); napi_value result = nullptr; - napi_valuetype valueType; + napi_valuetype valueType = napi_undefined; napi_typeof(env, argv[0], &valueType); NAPI_ASSERT(env, valueType == napi_object, "Wrong argument type. Object expected."); @@ -919,7 +919,7 @@ napi_value DeviceManagerNapi::StopDeviceDiscoverSync(napi_env env, napi_callback DMLOG(DM_LOG_INFO, "StopDeviceDiscoverSync in"); GET_PARAMS(env, info, DM_NAPI_ARGS_ONE); napi_value result = nullptr; - napi_valuetype valueType; + napi_valuetype valueType = napi_undefined; napi_typeof(env, argv[0], &valueType); NAPI_ASSERT(env, valueType == napi_number, "Wrong argument type. Object expected."); @@ -948,11 +948,11 @@ napi_value DeviceManagerNapi::AuthenticateDevice(napi_env env, napi_callback_inf DMLOG(DM_LOG_INFO, "AuthenticateDevice in"); GET_PARAMS(env, info, DM_NAPI_ARGS_THREE); napi_value result = nullptr; - napi_valuetype deviceInfoType; + napi_valuetype deviceInfoType = napi_undefined; napi_typeof(env, argv[0], &deviceInfoType); NAPI_ASSERT(env, deviceInfoType == napi_object, "Wrong argument type. Object expected."); - napi_valuetype authparamType; + napi_valuetype authparamType = napi_undefined; napi_typeof(env, argv[PARAM_INDEX_ONE], &authparamType); NAPI_ASSERT(env, authparamType == napi_object, "Wrong argument type. Object expected."); @@ -997,7 +997,7 @@ napi_value DeviceManagerNapi::VerifyAuthInfo(napi_env env, napi_callback_info in DMLOG(DM_LOG_INFO, "VerifyAuthInfo in"); GET_PARAMS(env, info, DM_NAPI_ARGS_TWO); napi_value result = nullptr; - napi_valuetype valueType; + napi_valuetype valueType = napi_undefined; napi_typeof(env, argv[0], &valueType); NAPI_ASSERT(env, valueType == napi_object, "Wrong argument type. Object expected."); @@ -1161,8 +1161,8 @@ void DeviceManagerNapi::HandleCreateDmCallBack(const napi_env &env, AsyncCallbac (void)status; AsyncCallbackInfo *asCallbackInfo = (AsyncCallbackInfo *)data; napi_value result[DM_NAPI_ARGS_TWO] = { 0 }; - napi_value ctor; - napi_value argv; + napi_value ctor = nullptr; + napi_value argv = nullptr; napi_get_reference_value(env, sConstructor_, &ctor); napi_create_string_utf8(env, asCallbackInfo->bundleName, NAPI_AUTO_LENGTH, &argv); napi_status ret = napi_new_instance(env, ctor, DM_NAPI_ARGS_ONE, &argv, &result[1]); @@ -1250,7 +1250,7 @@ napi_value DeviceManagerNapi::Constructor(napi_env env, napi_callback_info info) napi_value DeviceManagerNapi::Init(napi_env env, napi_value exports) { - napi_value dmClass; + napi_value dmClass = nullptr; napi_property_descriptor dmProperties[] = { DECLARE_NAPI_FUNCTION("release", ReleaseDeviceManager), DECLARE_NAPI_FUNCTION("getTrustedDeviceListSync", GetTrustedDeviceListSync), diff --git a/services/devicemanagerservice/src/auth/hichain_connector.cpp b/services/devicemanagerservice/src/auth/hichain_connector.cpp index a023019fa8c11ff625d524ae3c478141625a4f23..06c3716fed75e510367a4420f8640d9e644861dd 100644 --- a/services/devicemanagerservice/src/auth/hichain_connector.cpp +++ b/services/devicemanagerservice/src/auth/hichain_connector.cpp @@ -359,8 +359,7 @@ void HichainAuthenCallBack::onFinish(int64_t requestId, int32_t operationCode, c if (operationCode == GroupOperationCode::GROUP_CREATE) { DMLOG(DM_LOG_INFO, "Create group success"); - std::string returnStr = returnData; - HichainConnector::GetInstance().OnGroupCreated(requestId, returnStr); + HichainConnector::GetInstance().OnGroupCreated(requestId, data); } if (operationCode == GroupOperationCode::MEMBER_DELETE) { diff --git a/services/devicemanagerservice/src/ipc/ipc_server_adapter.cpp b/services/devicemanagerservice/src/ipc/ipc_server_adapter.cpp index 240306ce540255a3edb2e027bd7d449ee9c28e3e..584da618bb667883e97f9e8576269c4e3c0420f1 100644 --- a/services/devicemanagerservice/src/ipc/ipc_server_adapter.cpp +++ b/services/devicemanagerservice/src/ipc/ipc_server_adapter.cpp @@ -82,14 +82,17 @@ int32_t IpcServerAdapter::GetTrustedDeviceList(std::string &pkgName, std::string } DMLOG(DM_LOG_INFO, "In, pkgName: %s", pkgName.c_str()); NodeBasicInfo *nodeInfo = nullptr; + *info = nullptr; + *infoNum = 0; int32_t ret = SoftbusAdapter::GetTrustDevices(pkgName, &nodeInfo, infoNum); - if (ret != DEVICEMANAGER_OK) { - DMLOG(DM_LOG_ERROR, "DM_GetSoftbusTrustDevices failed with ret %d", ret); + if (ret != DEVICEMANAGER_OK || *infoNum <= 0 || nodeInfo == nullptr) { + DMLOG(DM_LOG_ERROR, "GetTrustDevices errCode:%d, num:%d", ret, *infoNum); return ret; } - *info = nullptr; - if (*infoNum > 0) { - *info = (DmDeviceInfo *)malloc(sizeof(DmDeviceInfo) * (*infoNum)); + *info = (DmDeviceInfo *)malloc(sizeof(DmDeviceInfo) * (*infoNum)); + if (*info == nullptr) { + FreeNodeInfo(nodeInfo); + return DEVICEMANAGER_MALLOC_ERROR; } for (int32_t i = 0; i < *infoNum; ++i) { NodeBasicInfo *nodeBasicInfo = nodeInfo + i; diff --git a/services/devicemanagerservice/src/ipc/standard/ipc_cmd_parser.cpp b/services/devicemanagerservice/src/ipc/standard/ipc_cmd_parser.cpp index c6bc39322d136967229548afec32ebbffcca1f8c..1f58b838d97bc940bd9401bf16195eb312e763b6 100644 --- a/services/devicemanagerservice/src/ipc/standard/ipc_cmd_parser.cpp +++ b/services/devicemanagerservice/src/ipc/standard/ipc_cmd_parser.cpp @@ -266,8 +266,11 @@ ON_IPC_CMD(AUTHENTICATE_DEVICE, MessageParcel &data, MessageParcel &reply) 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_OK; + if (deviceInfo != nullptr) { + 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/requestauth/request_session.cpp b/services/devicemanagerservice/src/requestauth/request_session.cpp index bd8ab35d79ec310cff12471f2942f06a623026b1..143b5cb1b12919072c24bc88bd054e0ffd2c0770 100644 --- a/services/devicemanagerservice/src/requestauth/request_session.cpp +++ b/services/devicemanagerservice/src/requestauth/request_session.cpp @@ -61,6 +61,8 @@ RequestSession::RequestSession(std::string &hostPkgName, const DmDeviceInfo &dev mTargetPkgName = targetPkgName; mStatus_ = StatusType::STATUS_INIT; mPinToken_ = IpcServerAdapter::GenRandInt(MIN_PIN_TOKEN, MAX_PIN_TOKEN); + mChannelId_ = -1; + mRequestId_ = -1; char randStr[TOKEN_LEN] = {0}; bool res = EncryptUtils::MbedtlsGenRandomStr(randStr, sizeof(randStr), false); if (res == false) { diff --git a/services/devicemanagerservice/src/requestauth/response_session.cpp b/services/devicemanagerservice/src/requestauth/response_session.cpp index 9405548f656f8d8fa035a319fb927a2cb75a5b13..54681ec86cde41438bd18936f05acb37ba353e3b 100644 --- a/services/devicemanagerservice/src/requestauth/response_session.cpp +++ b/services/devicemanagerservice/src/requestauth/response_session.cpp @@ -48,6 +48,13 @@ ResponseSession::ResponseSession() { mSessionStatus_ = ResponseSessionStatus::SESSION_INIT; sem_init(&mSem_, 0, 0); + mRequestId_ = -1; + mGroupId_ = ""; + mGroupName_ = ""; + mReqDeviceId_ = ""; + mMsgRequestAuthPtr_ = nullptr; + mChannelId_ = -1; + mPincode_ = -1; } int64_t ResponseSession::GetRequestId() diff --git a/services/devicemanagerservice/src/softbus/softbus_adapter.cpp b/services/devicemanagerservice/src/softbus/softbus_adapter.cpp index de85815c850c96a00f3ceec030a2eb3caae98c98..dd3959eacd3a3560fe75bc58c079ed20a9cb73bb 100644 --- a/services/devicemanagerservice/src/softbus/softbus_adapter.cpp +++ b/services/devicemanagerservice/src/softbus/softbus_adapter.cpp @@ -304,7 +304,10 @@ int32_t SoftbusAdapter::StartDiscovery(std::string &pkgName, SubscribeInfo *info subinfo->subscribeIdOrigin = info->subscribeId; subinfo->subscribeIdPrefix = subscribeIdPrefix++; subinfo->info = *info; - subinfo->info.subscribeId = (subinfo->subscribeIdPrefix << SUBSCRIBE_ID_PREFIX_LEN) | info->subscribeId; + + uint32_t uSubscribeId = static_cast(info->subscribeId); + uSubscribeId = (subinfo->subscribeIdPrefix << SUBSCRIBE_ID_PREFIX_LEN) | uSubscribeId; + subinfo->info.subscribeId = static_cast(uSubscribeId); } if (vectorIter == subinfoVector.end()) { subinfoVector.push_back(subinfo); diff --git a/services/devicemanagerservice/src/softbus/softbus_session.cpp b/services/devicemanagerservice/src/softbus/softbus_session.cpp index 8a74c2e48c9a3a218fd911a58a4dddd2b4d3cf54..84bf739a2649b5a60a3df9c816643e29a1d1d4a1 100644 --- a/services/devicemanagerservice/src/softbus/softbus_session.cpp +++ b/services/devicemanagerservice/src/softbus/softbus_session.cpp @@ -217,9 +217,9 @@ void SoftbusSession::GetPeerDeviceId(int32_t sessionId, std::string &peerDevId) char peerDeviceId[DEVICE_UUID_LENGTH] = {0}; int32_t ret = ::GetPeerDeviceId(sessionId, &peerDeviceId[0], DEVICE_UUID_LENGTH); if (ret == 0) { - DMLOG(DM_LOG_INFO, "GetPeerDeviceId success for session:%d, peerDeviceId:%s", sessionId, - GetAnonyString(peerDeviceId).c_str()); peerDevId = peerDeviceId; + DMLOG(DM_LOG_INFO, "GetPeerDeviceId success for session:%d, peerDeviceId:%s", sessionId, + GetAnonyString(peerDevId).c_str()); return; } diff --git a/services/devicemanagerservice/src/timer/dm_timer.cpp b/services/devicemanagerservice/src/timer/dm_timer.cpp index 8dcd7a703fa18f325a402f719461b685c2b1b4d1..09c7cfecd16d40d41149b5a4e65494eae8a22ce4 100644 --- a/services/devicemanagerservice/src/timer/dm_timer.cpp +++ b/services/devicemanagerservice/src/timer/dm_timer.cpp @@ -26,6 +26,7 @@ DmTimer::DmTimer(std::string &name) { mStatus_ = DmTimerStatus::DM_STATUS_INIT; mTimerName_ = name; + mEpFd_ = 0; } DmTimer::~DmTimer() @@ -133,7 +134,9 @@ void DmTimer::Release() mStatus_ = DmTimerStatus::DM_STATUS_INIT; close(mTimeFd_[0]); close(mTimeFd_[1]); - close(mEpFd_); + if (mEpFd_ >= 0) { + close(mEpFd_); + } mTimeFd_[0] = 0; mTimeFd_[1] = 0; mEpFd_ = 0;