From 4b7491472d596420ec03c5e67ac0202b95483f8d Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Wed, 2 Sep 2026 14:09:07 +0100 Subject: [PATCH] fix(wayland): reject garbage pointer deltas from libei --- src/lib/platform/EiScreen.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/platform/EiScreen.cpp b/src/lib/platform/EiScreen.cpp index 134ea6dc1..e4f38f986 100644 --- a/src/lib/platform/EiScreen.cpp +++ b/src/lib/platform/EiScreen.cpp @@ -852,9 +852,13 @@ void EiScreen::onMotionEvent(ei_event *event) auto dx = ei_event_pointer_get_dx(event); auto dy = ei_event_pointer_get_dy(event); + if (!std::isfinite(dx) || !std::isfinite(dy)) { + LOG_WARN("dropping pointer motion with non-finite delta: %g,%g", dx, dy); + return; + } if (m_isOnScreen) { - LOG_DEBUG("event: motion on primary x=%i y=%i)", m_cursorX, m_cursorY); + LOG_DEBUG("event: motion on primary x=%i y=%i", m_cursorX, m_cursorY); sendEvent(EventTypes::PrimaryScreenMotionOnPrimary, MotionInfo::alloc(m_cursorX, m_cursorY)); if (m_portalInputCapture->isActive()) { m_portalInputCapture->release();