From 0a38d246f9cf2f3d5c28e10e47df24870a4404c5 Mon Sep 17 00:00:00 2001 From: Diego Iastrubni Date: Wed, 14 Sep 2022 21:35:42 +0300 Subject: [PATCH] Ladybird: Fix some crashes related to keyboard events Don't try to get the unicode value of an empty string. --- Ladybird/WebView.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Ladybird/WebView.cpp b/Ladybird/WebView.cpp index 42902ba5c8..53bf19d21a 100644 --- a/Ladybird/WebView.cpp +++ b/Ladybird/WebView.cpp @@ -602,18 +602,25 @@ void WebView::keyPressEvent(QKeyEvent* event) break; } + auto text = event->text(); + if (text.isEmpty()) { + return; + } + auto point = event->text()[0].unicode(); auto keycode = get_keycode_from_qt_keyboard_event(*event); auto modifiers = get_modifiers_from_qt_keyboard_event(*event); - auto point = event->text()[0].unicode(); - // dbgln(String::formatted("keycode={}, modifiers={}, point={}", (int32_t)keycode, modifiers, point)); m_page_client->page().handle_keydown(keycode, modifiers, point); } void WebView::keyReleaseEvent(QKeyEvent* event) { + auto text = event->text(); + if (text.isEmpty()) { + return; + } + auto point = event->text()[0].unicode(); auto keycode = get_keycode_from_qt_keyboard_event(*event); auto modifiers = get_modifiers_from_qt_keyboard_event(*event); - auto point = event->text()[0].unicode(); m_page_client->page().handle_keyup(keycode, modifiers, point); }