diff --git a/common/include/input_hub.cpp b/common/include/input_hub.cpp index 55704f92fee64e95fc9a025cb5b995beddd96c24..6288aa7f27d1a38209374d02234332f0a84f59bd 100644 --- a/common/include/input_hub.cpp +++ b/common/include/input_hub.cpp @@ -189,7 +189,12 @@ size_t InputHub::GetEvents(RawEvent *buffer, size_t bufferSize) } struct input_event readBuffer[bufferSize]; int32_t readSize = read(eventItem.data.fd, readBuffer, sizeof(struct input_event) * capacity); - size_t count = ReadInputEvent(readSize, *GetDeviceByFdLocked(eventItem.data.fd)); + Device* deviceByFd = GetDeviceByFdLocked(eventItem.data.fd); + if (!deviceByFd) { + DHLOGE("Find device by fd: %{public}d failed", eventItem.data.fd); + continue; + } + size_t count = ReadInputEvent(readSize, *deviceByFd); Device* device = GetSupportDeviceByFd(eventItem.data.fd); if (!device) { DHLOGE("Can not find device by fd: %{public}d", eventItem.data.fd); diff --git a/services/sink/transport/src/distributed_input_sink_transport.cpp b/services/sink/transport/src/distributed_input_sink_transport.cpp index 5b5374937f2a65c8087a2f0a556d0ade443e04fc..df1842d34a1a9be6d7b40929eac6bad145d56f69 100644 --- a/services/sink/transport/src/distributed_input_sink_transport.cpp +++ b/services/sink/transport/src/distributed_input_sink_transport.cpp @@ -79,6 +79,10 @@ void DistributedInputSinkTransport::DInputSinkEventHandler::ProcessEvent(const A switch (eventId) { case EHandlerMsgType::DINPUT_SINK_EVENT_HANDLER_MSG: { std::shared_ptr innerMsg = event->GetSharedObject(); + if (innerMsg == nullptr) { + DHLOGE("innerMsg is null."); + break; + } nlohmann::json jsonStr; jsonStr[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SINK_MSG_BODY_DATA; jsonStr[DINPUT_SOFTBUS_KEY_INPUT_DATA] = innerMsg->dump(); diff --git a/services/source/inputinject/src/distributed_input_node_manager.cpp b/services/source/inputinject/src/distributed_input_node_manager.cpp index af1f751494e1c8e79087b3ed5e250323aff2819a..7828cd1ba17271d368ce04b6a4c161354f154e2a 100644 --- a/services/source/inputinject/src/distributed_input_node_manager.cpp +++ b/services/source/inputinject/src/distributed_input_node_manager.cpp @@ -203,6 +203,10 @@ void DistributedInputNodeManager::DInputNodeManagerEventHandler::ScanAllNode( { DHLOGI("ScanAllNode enter."); std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *(it); std::string devId = innerMsg[INPUT_NODE_DEVID]; diff --git a/services/source/sourcemanager/src/dinput_source_manager_event_handler.cpp b/services/source/sourcemanager/src/dinput_source_manager_event_handler.cpp index 0039c9085a5b581abcbe017219e91db1992930d9..4ed70d892142e2a99979bc78f06d1a6b490f7fa0 100644 --- a/services/source/sourcemanager/src/dinput_source_manager_event_handler.cpp +++ b/services/source/sourcemanager/src/dinput_source_manager_event_handler.cpp @@ -48,6 +48,10 @@ DInputSourceManagerEventHandler::~DInputSourceManagerEventHandler() void DInputSourceManagerEventHandler::NotifyRegisterCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -80,6 +84,10 @@ void DInputSourceManagerEventHandler::NotifyRegisterCallback(const AppExecFwk::I void DInputSourceManagerEventHandler::NotifyUnregisterCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -101,6 +109,10 @@ void DInputSourceManagerEventHandler::NotifyUnregisterCallback(const AppExecFwk: void DInputSourceManagerEventHandler::NotifyPrepareCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -120,6 +132,10 @@ void DInputSourceManagerEventHandler::NotifyPrepareCallback(const AppExecFwk::In void DInputSourceManagerEventHandler::NotifyUnprepareCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -139,6 +155,10 @@ void DInputSourceManagerEventHandler::NotifyUnprepareCallback(const AppExecFwk:: void DInputSourceManagerEventHandler::NotifyStartCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -165,6 +185,10 @@ void DInputSourceManagerEventHandler::NotifyStartCallback(const AppExecFwk::Inne void DInputSourceManagerEventHandler::NotifyStopCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -202,6 +226,10 @@ void DInputSourceManagerEventHandler::NotifyStopCallback(const AppExecFwk::Inner void DInputSourceManagerEventHandler::NotifyStartDhidCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -221,6 +249,10 @@ void DInputSourceManagerEventHandler::NotifyStartDhidCallback(const AppExecFwk:: void DInputSourceManagerEventHandler::NotifyStopDhidCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -240,6 +272,10 @@ void DInputSourceManagerEventHandler::NotifyStopDhidCallback(const AppExecFwk::I void DInputSourceManagerEventHandler::NotifyKeyStateCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -262,6 +298,10 @@ void DInputSourceManagerEventHandler::NotifyKeyStateCallback(const AppExecFwk::I void DInputSourceManagerEventHandler::NotifyStartServerCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } auto it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsInt32(innerMsg, INPUT_SOURCEMANAGER_KEY_RESULT)) { @@ -277,6 +317,10 @@ void DInputSourceManagerEventHandler::NotifyStartServerCallback(const AppExecFwk void DInputSourceManagerEventHandler::NotifyRelayPrepareCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } nlohmann::json::iterator it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsInt32(innerMsg, INPUT_SOURCEMANAGER_KEY_VALUE) || @@ -295,6 +339,10 @@ void DInputSourceManagerEventHandler::NotifyRelayPrepareCallback(const AppExecFw void DInputSourceManagerEventHandler::NotifyRelayUnprepareCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } nlohmann::json::iterator it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsInt32(innerMsg, INPUT_SOURCEMANAGER_KEY_VALUE) || @@ -313,6 +361,10 @@ void DInputSourceManagerEventHandler::NotifyRelayUnprepareCallback(const AppExec void DInputSourceManagerEventHandler::NotifyRelayPrepareRemoteInput(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } nlohmann::json::iterator it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -345,6 +397,10 @@ void DInputSourceManagerEventHandler::NotifyRelayPrepareRemoteInput(const AppExe void DInputSourceManagerEventHandler::NotifyRelayUnprepareRemoteInput(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } nlohmann::json::iterator it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsString(innerMsg, INPUT_SOURCEMANAGER_KEY_DEVID) || @@ -373,6 +429,10 @@ void DInputSourceManagerEventHandler::NotifyRelayUnprepareRemoteInput(const AppE void DInputSourceManagerEventHandler::NotifyRelayStartDhidCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } nlohmann::json::iterator it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsInt32(innerMsg, INPUT_SOURCEMANAGER_KEY_VALUE) || @@ -393,6 +453,10 @@ void DInputSourceManagerEventHandler::NotifyRelayStartDhidCallback(const AppExec void DInputSourceManagerEventHandler::NotifyRelayStopDhidCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } nlohmann::json::iterator it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsInt32(innerMsg, INPUT_SOURCEMANAGER_KEY_VALUE) || @@ -413,6 +477,10 @@ void DInputSourceManagerEventHandler::NotifyRelayStopDhidCallback(const AppExecF void DInputSourceManagerEventHandler::NotifyRelayStartTypeCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } nlohmann::json::iterator it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsInt32(innerMsg, INPUT_SOURCEMANAGER_KEY_VALUE) || @@ -433,6 +501,10 @@ void DInputSourceManagerEventHandler::NotifyRelayStartTypeCallback(const AppExec void DInputSourceManagerEventHandler::NotifyRelayStopTypeCallback(const AppExecFwk::InnerEvent::Pointer &event) { std::shared_ptr dataMsg = event->GetSharedObject(); + if (dataMsg == nullptr) { + DHLOGE("dataMsg is null."); + return; + } nlohmann::json::iterator it = dataMsg->begin(); nlohmann::json innerMsg = *it; if (!IsInt32(innerMsg, INPUT_SOURCEMANAGER_KEY_VALUE) ||