xkb: Avoid length-check failure on empty strings.

_XkbCheckRequestBounds assumes that from..to is at least one byte.
However, request strings can be empty, causing spurious failures in
XkbGetKbdByName calls. To avoid this, before checking bounds make
sure that the length is nonzero.
This commit is contained in:
FeepingCreature 2022-08-20 20:12:31 +02:00 committed by FeepingCreature
parent d23e446558
commit 79c572fbd3

View File

@ -5817,11 +5817,11 @@ GetComponentSpec(ClientPtr client, xkbGetKbdByNameReq *stuff,
return NULL;
}
len = (*(unsigned char *) wire++);
if (len > 0) {
if (!_XkbCheckRequestBounds(client, stuff, wire, wire + len)) {
*errRtrn = BadLength;
return NULL;
}
if (len > 0) {
str = calloc(1, len + 1);
if (str) {
tmp = str;