mirror of
https://github.com/systemd/systemd.git
synced 2025-01-10 05:18:17 +03:00
sd-hwdb: fix matching for characters with an ord > 127
Devices like the "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Mouse" contain characters higher than 127. That ® is correctly stored in the hwdb and passed into the search field during query, but the comparison fails. Our search string is a const char *, trie_string() returns a const char * but the current character is cast to uint8_t. This causes anything over 127 to fail the match. Fix this, we're dealing with characters everywhere here after all.
This commit is contained in:
parent
0471921b3e
commit
dc4b6f8d2c
@ -240,7 +240,7 @@ static int trie_search_f(sd_hwdb *hwdb, const char *search) {
|
||||
size_t p = 0;
|
||||
|
||||
if (node->prefix_off) {
|
||||
uint8_t c;
|
||||
char c;
|
||||
|
||||
for (; (c = trie_string(hwdb, node->prefix_off)[p]); p++) {
|
||||
if (IN_SET(c, '*', '?', '['))
|
||||
|
Loading…
Reference in New Issue
Block a user