From 205a3c803e5298d56683660736ec1a41b671b56e Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Thu, 2 Jul 2026 22:42:51 -0400 Subject: [PATCH] fix: clamp mapped modifiers --- src/lib/client/ServerProxy.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/client/ServerProxy.cpp b/src/lib/client/ServerProxy.cpp index 0c0c1a136..38df88634 100644 --- a/src/lib/client/ServerProxy.cpp +++ b/src/lib/client/ServerProxy.cpp @@ -455,9 +455,11 @@ KeyID ServerProxy::translateKey(KeyID id) const } if (id2 != kKeyModifierIDNull) { - return s_translationTable[m_modifierTranslationTable[id2]][side]; + return std::clamp( + s_translationTable[m_modifierTranslationTable[id2]][side], 0, kKeyModifierIDLast - 1 + ); } else { - return id; + return std::clamp(id, 0, kKeyModifierIDLast - 1); } } @@ -487,7 +489,7 @@ KeyModifierMask ServerProxy::translateModifierMask(KeyModifierMask mask) const if ((mask & KeyModifierSuper) != 0) { newMask |= s_masks[m_modifierTranslationTable[kKeyModifierIDSuper]]; } - return newMask; + return std::clamp(newMask, 0, kKeyModifierIDLast - 1); } void ServerProxy::enter() @@ -802,7 +804,7 @@ void ServerProxy::setOptions() } if (id != kKeyModifierIDNull) { - m_modifierTranslationTable[id] = options[i + 1]; + m_modifierTranslationTable[id] = std::clamp(options[i + 1], 0, kKeyModifierIDLast - 1); LOG_VERBOSE("modifier %d mapped to %d", id, m_modifierTranslationTable[id]); } }