Fix buffer overrun if apply/removeShift is called with an unknown character

This commit is contained in:
2023-01-11 13:57:09 -05:00
parent e4b1162d46
commit e212e99794

View File

@@ -92,6 +92,7 @@ bool mod_contains(eKeyMod mods, eKeyMod mod) {
} }
unsigned char applyShift(unsigned char c){ unsigned char applyShift(unsigned char c){
if(c < ' ' || c >= 0x7f) return c;
static const char afterShift[] = { static const char afterShift[] = {
' ', '!', '"', '#', '$', '%', '&', '"', '(', ')', '*', '+', '<', '_', '>', '?', ' ', '!', '"', '#', '$', '%', '&', '"', '(', ')', '*', '+', '<', '_', '>', '?',
')', '!', '@', '#', '$', '%', '^', '&', '*', '(', ':', ':', '<', '+', '>', '?', ')', '!', '@', '#', '$', '%', '^', '&', '*', '(', ':', ':', '<', '+', '>', '?',
@@ -104,6 +105,7 @@ unsigned char applyShift(unsigned char c){
} }
unsigned char removeShift(unsigned char c){ unsigned char removeShift(unsigned char c){
if(c < ' ' || c >= 0x7f) return c;
static const char afterUnShift[] = { static const char afterUnShift[] = {
' ', '1', '\'','3', '4', '5', '7', '\'','9', '0', '8', '=', ',', '-', '.', '/', ' ', '1', '\'','3', '4', '5', '7', '\'','9', '0', '8', '=', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ';', ';', ',', '=', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ';', ';', ',', '=', '.', '/',