diff --git a/usb/hdi_service/src/usbd_function.cpp b/usb/hdi_service/src/usbd_function.cpp index 630ee3561a621f70cd7c0c64ab432576603d375f..5b925346265ba4443eb1f2006bf39b45f4a1f1a5 100644 --- a/usb/hdi_service/src/usbd_function.cpp +++ b/usb/hdi_service/src/usbd_function.cpp @@ -403,6 +403,10 @@ int32_t UsbdFunction::UsbdRegisterDevice(const std::string &serviceName) { int32_t ret; OHOS::sptr devMgr = IDeviceManager::Get(); + if (devMgr == nullptr) { + HDF_LOGE("%{public}s: get IDeviceManager failed", __func__); + return HDF_FAILURE; + } ret = devMgr->LoadDevice(serviceName); if (ret != HDF_SUCCESS) { HDF_LOGE("%{public}s, load %{public}s failed", __func__, serviceName.c_str()); @@ -415,6 +419,10 @@ void UsbdFunction::UsbdUnregisterDevice(const std::string &serviceName) { int32_t ret; OHOS::sptr devMgr = IDeviceManager::Get(); + if (devMgr == nullptr) { + HDF_LOGE("%{public}s: get devMgr object failed", __func__); + return; + } ret = devMgr->UnloadDevice(serviceName); if (ret != HDF_SUCCESS) { HDF_LOGW("%{public}s, %{public}s unload failed", __func__, serviceName.c_str());