diff --git a/interfaces/inner_kits/native_cpp/src/device_manager_impl.cpp b/interfaces/inner_kits/native_cpp/src/device_manager_impl.cpp index 1d5e00c6f4ca7afc13799e3c61f15284061553bf..3a442c21a8f7fe52b216bb740a751cbd3b27e5a5 100644 --- a/interfaces/inner_kits/native_cpp/src/device_manager_impl.cpp +++ b/interfaces/inner_kits/native_cpp/src/device_manager_impl.cpp @@ -2796,17 +2796,18 @@ int32_t DeviceManagerImpl::GetLocalServiceInfoByBundleNameAndPinExchangeType( int32_t DeviceManagerImpl::SetLocalDeviceName(const std::string &pkgName, const std::string &deviceName, std::shared_ptr callback) { - if (pkgName.empty() || deviceName.empty() || deviceName.size() > DEVICE_NAME_MAX_BYTES) { - LOGE("param invalid, pkgName : %{public}s, deviceName = %{public}s", - pkgName.c_str(), GetAnonyString(deviceName).c_str()); - return ERR_DM_INPUT_PARA_INVALID; - } LOGI("Start, pkgName: %{public}s", pkgName.c_str()); int32_t ret = DeviceManagerNotify::GetInstance().RegisterSetLocalDeviceNameCallback(pkgName, callback); if (ret != DM_OK) { LOGE("Register Callback failed ret: %{public}d", ret); return ret; } + if (pkgName.empty() || deviceName.empty() || deviceName.size() > DEVICE_NAME_MAX_BYTES) { + LOGE("param invalid, pkgName=%{public}s, deviceName=%{public}s", + pkgName.c_str(), GetAnonyString(deviceName).c_str()); + DeviceManagerNotify::GetInstance().OnSetLocalDeviceNameResult(pkgName, ERR_DM_INPUT_PARA_INVALID); + return ERR_DM_INPUT_PARA_INVALID; + } std::shared_ptr req = std::make_shared(); std::shared_ptr rsp = std::make_shared(); req->SetPkgName(pkgName); @@ -2830,17 +2831,18 @@ int32_t DeviceManagerImpl::SetLocalDeviceName(const std::string &pkgName, const int32_t DeviceManagerImpl::SetRemoteDeviceName(const std::string &pkgName, const std::string &deviceId, const std::string &deviceName, std::shared_ptr callback) { - if (pkgName.empty() || deviceName.empty() || deviceName.size() > DEVICE_NAME_MAX_BYTES || deviceId.empty()) { - LOGE("param invalid, pkgName : %{public}s, deviceName = %{public}s", - pkgName.c_str(), GetAnonyString(deviceName).c_str()); - return ERR_DM_INPUT_PARA_INVALID; - } LOGI("Start, pkgName: %{public}s", pkgName.c_str()); int32_t ret = DeviceManagerNotify::GetInstance().RegisterSetRemoteDeviceNameCallback(pkgName, deviceId, callback); if (ret != DM_OK) { LOGE("Register Callback failed ret: %{public}d", ret); return ret; } + if (pkgName.empty() || deviceName.empty() || deviceName.size() > DEVICE_NAME_MAX_BYTES || deviceId.empty()) { + LOGE("param invalid, pkgName=%{public}s, deviceName=%{public}s, deviceId=%{public}s", + pkgName.c_str(), GetAnonyString(deviceName).c_str(), GetAnonyString(deviceId).c_str()); + DeviceManagerNotify::GetInstance().OnSetRemoteDeviceNameResult(pkgName, deviceId, ERR_DM_INPUT_PARA_INVALID); + return ERR_DM_INPUT_PARA_INVALID; + } std::shared_ptr req = std::make_shared(); std::shared_ptr rsp = std::make_shared(); req->SetPkgName(pkgName); diff --git a/interfaces/inner_kits/native_cpp/src/notify/device_manager_notify.cpp b/interfaces/inner_kits/native_cpp/src/notify/device_manager_notify.cpp index ac2d02da15ab355a38d458302af9394b8f95028d..278ebade4d53d5d46cd43c5f43211105821592bf 100644 --- a/interfaces/inner_kits/native_cpp/src/notify/device_manager_notify.cpp +++ b/interfaces/inner_kits/native_cpp/src/notify/device_manager_notify.cpp @@ -1258,6 +1258,10 @@ int32_t DeviceManagerNotify::RegisterGetDeviceProfileInfoListCallback(const std: std::shared_ptr callback) { LOGI("In, pkgName: %{public}s.", pkgName.c_str()); + if (callback == nullptr || pkgName.empty()) { + LOGE("callback is null or pkgName is empty"); + return ERR_DM_CALLBACK_REGISTER_FAILED; + } std::lock_guard autoLock(bindLock_); if (getDeviceProfileInfoCallback_.size() > MAX_CONTAINER_SIZE) { LOGE("callback map size is more than max size"); @@ -1296,6 +1300,10 @@ int32_t DeviceManagerNotify::RegisterGetDeviceIconInfoCallback(const std::string std::shared_ptr callback) { LOGI("In, pkgName: %{public}s.", pkgName.c_str()); + if (callback == nullptr || pkgName.empty()) { + LOGE("callback is null or pkgName is empty"); + return ERR_DM_CALLBACK_REGISTER_FAILED; + } std::lock_guard autoLock(bindLock_); if (getDeviceIconInfoCallback_.size() > MAX_CONTAINER_SIZE) { LOGE("callback map size is more than max size"); @@ -1362,9 +1370,13 @@ int32_t DeviceManagerNotify::RegisterSetLocalDeviceNameCallback(const std::strin std::shared_ptr callback) { LOGI("In, pkgName: %{public}s.", pkgName.c_str()); + if (callback == nullptr || pkgName.empty()) { + LOGE("callback is null or pkgName is empty"); + return ERR_DM_CALLBACK_REGISTER_FAILED; + } std::lock_guard autoLock(bindLock_); if (setLocalDeviceNameCallback_.size() > MAX_CONTAINER_SIZE) { - LOGI("callback map size is more than max size"); + LOGE("callback map size is more than max size"); return ERR_DM_CALLBACK_REGISTER_FAILED; } setLocalDeviceNameCallback_[pkgName] = callback; @@ -1375,9 +1387,13 @@ int32_t DeviceManagerNotify::RegisterSetRemoteDeviceNameCallback(const std::stri const std::string &deviceId, std::shared_ptr callback) { LOGI("In, pkgName: %{public}s.", pkgName.c_str()); + if (callback == nullptr || pkgName.empty() || deviceId.empty()) { + LOGE("callback is null or pkgName is empty or deviceId is empty"); + return ERR_DM_CALLBACK_REGISTER_FAILED; + } std::lock_guard autoLock(bindLock_); if (setRemoteDeviceNameCallback_.size() > MAX_CONTAINER_SIZE) { - LOGI("callback map size is more than max size"); + LOGE("callback map size is more than max size"); return ERR_DM_CALLBACK_REGISTER_FAILED; } auto iter = setRemoteDeviceNameCallback_.find(pkgName); @@ -1386,7 +1402,7 @@ int32_t DeviceManagerNotify::RegisterSetRemoteDeviceNameCallback(const std::stri return DM_OK; } if (iter->second.size() > MAX_CONTAINER_SIZE) { - LOGI("callback map size is more than max size"); + LOGE("callback map size is more than max size"); return ERR_DM_CALLBACK_REGISTER_FAILED; } iter->second[deviceId] = callback; diff --git a/interfaces/kits/js4.0/src/native_devicemanager_js.cpp b/interfaces/kits/js4.0/src/native_devicemanager_js.cpp index 6148bbc94f1190757738c6256d5b3b5e83f50168..909fc4fc97090f9495adedd67012acb36cb91a19 100644 --- a/interfaces/kits/js4.0/src/native_devicemanager_js.cpp +++ b/interfaces/kits/js4.0/src/native_devicemanager_js.cpp @@ -2481,7 +2481,7 @@ napi_value DeviceManagerNapi::SetLocalDeviceNamePromise(napi_env env, (void)status; SetLocalDeviceNameAsyncCallbackInfo *jsCallback = reinterpret_cast(data); - if (jsCallback->code == ERR_DM_CALLBACK_REGISTER_FAILED || jsCallback->code == ERR_DM_INPUT_PARA_INVALID) { + if (jsCallback->code == ERR_DM_CALLBACK_REGISTER_FAILED) { if (jsCallback->deferred != nullptr) { napi_value error = CreateBusinessError(env, jsCallback->code, false); napi_reject_deferred(env, jsCallback->deferred, error); @@ -2527,7 +2527,7 @@ napi_value DeviceManagerNapi::SetRemoteDeviceNamePromise(napi_env env, (void)status; SetRemoteDeviceNameAsyncCallbackInfo *jsCallback = reinterpret_cast(data); - if (jsCallback->code == ERR_DM_CALLBACK_REGISTER_FAILED || jsCallback->code == ERR_DM_INPUT_PARA_INVALID) { + if (jsCallback->code == ERR_DM_CALLBACK_REGISTER_FAILED) { if (jsCallback->deferred != nullptr) { napi_value error = CreateBusinessError(env, jsCallback->code, false); napi_reject_deferred(env, jsCallback->deferred, error); diff --git a/test/unittest/device_manager_impl_test.cpp b/test/unittest/device_manager_impl_test.cpp index 338613d20909fa341933f0d03215962cfeaed879..1070444fa989d0d5ed9e30141c4fa48369be73f0 100644 --- a/test/unittest/device_manager_impl_test.cpp +++ b/test/unittest/device_manager_impl_test.cpp @@ -153,7 +153,7 @@ HWTEST_F(DeviceManagerImplTest, PublishDeviceDiscovery1, testing::ext::TestSize. std::string packName = ""; DmPublishInfo publishInfo; std::shared_ptr callback = nullptr; - int32_t ret = DeviceManager::GetInstance().StartDeviceDiscovery(packName, publishInfo, callback); + int32_t ret = DeviceManager::GetInstance().PublishDeviceDiscovery(packName, publishInfo, callback); ASSERT_EQ(ret, ERR_DM_INPUT_PARA_INVALID); }