diff --git a/services/native/src/usb_device_manager.cpp b/services/native/src/usb_device_manager.cpp index a6c96c1ba69eb1cdd03cf4ae61ca01bf31811ad9..80a3414dfe8fce7b6862a7183100104bfc0d81d9 100644 --- a/services/native/src/usb_device_manager.cpp +++ b/services/native/src/usb_device_manager.cpp @@ -58,6 +58,11 @@ UsbDeviceManager::UsbDeviceManager() int32_t UsbDeviceManager::Init() { std::shared_ptr window_ = UsbFunctionSwitchWindow::GetInstance(); + if (window_ == nullptr) { + USB_HILOGE(MODULE_USB_SERVICE, "get usb function switch window failed"); + return UEC_SERVICE_INNER_ERR; + } + int32_t ret = window_->Init(); if (ret != UEC_OK) { USB_HILOGE(MODULE_USB_SERVICE, "Init usb function switch window failed"); @@ -226,6 +231,11 @@ void UsbDeviceManager::ProcessFuncChange(bool connected, int32_t currentFunc) void UsbDeviceManager::ProcessFunctionSwitchWindow(bool connected) { std::shared_ptr window_ = UsbFunctionSwitchWindow::GetInstance(); + if (window_ == nullptr) { + USB_HILOGE(MODULE_USB_SERVICE, "show window: get usb function switch window failed"); + return; + } + if (connected) { USB_HILOGD(MODULE_USB_SERVICE, "start pop up usb service switch window"); if (!window_->PopUpFunctionSwitchWindow()) { diff --git a/services/native/src/usb_function_switch_window.cpp b/services/native/src/usb_function_switch_window.cpp index cb6016e96379b608a2bb3d7c97fcbe43e5132972..1f236a0aab35469e567001d2de90ad9ccd542060 100644 --- a/services/native/src/usb_function_switch_window.cpp +++ b/services/native/src/usb_function_switch_window.cpp @@ -127,6 +127,11 @@ void UsbFunctionSwitchWindow::UsbFuncAbilityConn::OnAbilityConnectDone(const App const sptr &remoteObject, int32_t resultCode) { USB_HILOGI(MODULE_USB_SERVICE, "OnAbilityConnectDone"); + if (remoteObject == nullptr) { + USB_HILOGE(MODULE_USB_SERVICE, "remoteObject is nullptr"); + return; + } + MessageParcel data; MessageParcel reply; MessageOption option;