diff options
author | Peter Wu <lekensteyn@gmail.com> | 2013-04-26 23:15:40 +0200 |
---|---|---|
committer | Peter Wu <lekensteyn@gmail.com> | 2013-04-26 23:15:40 +0200 |
commit | 9e8da2dd01e21d43a5566df91d85c91fd64f72d1 (patch) | |
tree | 0c4e7c38b9b73b53982b065c0e2925f6075d730f | |
parent | 13ade9eb5b9a8a5fe9e37f3a42fbdacbd35c05ce (diff) | |
download | ltunify-9e8da2dd01e21d43a5566df91d85c91fd64f72d1.tar.gz |
Fix logic flaw in array bounds
Index 0xFF needs an array of size 0x100... This error was caught with
Address Sanitizer while trying to iterate through all registers 0x00..0xFF.
-rwxr-xr-x | hidraw.c | 6 | ||||
-rw-r--r-- | ltunify.c | 4 |
2 files changed, 5 insertions, 5 deletions
@@ -50,7 +50,7 @@ struct report { }; } __attribute__((__packed__)); -static const char * report_types[0xFF] = { +static const char * report_types[0x100] = { // 0x00 - 0x3F HID reports [0x01] = "KEYBOARD", [0x02] = "MOUSE", @@ -78,7 +78,7 @@ static const char * report_types[0xFF] = { [0x8F] = "_ERROR_MSG", }; -static const char * error_messages[0xFF] = { +static const char * error_messages[0x100] = { // error messages for type=8F (ERROR_MSG) [0x01] = "SUCCESS", [0x02] = "INVALID_SUBID", @@ -96,7 +96,7 @@ static const char * error_messages[0xFF] = { }; // everything with a '?' is guessed -static const char * registers[0xFF] = { +static const char * registers[0x100] = { [0x00] = "ENABLED_NOTIFS", [0x01] = "KBD_HAND_DETECT?", [0x02] = "CONNECTION_STATE", @@ -197,7 +197,7 @@ struct device { struct device devices[DEVICES_MAX]; // error messages for type=8F (ERROR_MSG) -static const char * error_messages[0xFF] = { +static const char * error_messages[0x100] = { [0x01] = "SUCCESS", [0x02] = "INVALID_SUBID", [0x03] = "INVALID_ADDRESS", @@ -213,7 +213,7 @@ static const char * error_messages[0xFF] = { [0x0d] = "WRONG_PIN_CODE", }; -static const char * device_type[0x0F] = { +static const char * device_type[0x10] = { [0x00] = "Unknown", [0x01] = "Keyboard", [0x02] = "Mouse", |