From 1e0dfe098d36a6d8189710726f77ce93ab20cebf Mon Sep 17 00:00:00 2001 From: y5nw <37980625+y5nw@users.noreply.github.com> Date: Tue, 3 Sep 2024 23:28:54 +0200 Subject: [PATCH] stricted scancode config syntax checking --- src/client/keycode.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/client/keycode.cpp b/src/client/keycode.cpp index 29949bbb8..19f556973 100644 --- a/src/client/keycode.cpp +++ b/src/client/keycode.cpp @@ -322,11 +322,14 @@ wchar_t KeyPress::getKeychar() const bool KeyPress::loadFromScancode(std::string_view name) { - if (name.size() < 2 || name[0] != '<') + if (name.size() < 2 || name[0] != '<' || name.back() != '>') return false; char *p; - scancode = strtoul(name.data()+1, &p, 10); - return p > name.data()+1; + const auto code = strtoul(name.data()+1, &p, 10); + if (p != name.data() + name.size() - 1) + return false; + scancode = code; + return true; } std::unordered_map KeyPress::specialKeyCache;