diff --git a/xkb/xkb.c b/xkb/xkb.c index befdfcc7c..65efa69e1 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -3002,7 +3002,7 @@ _XkbSetCompatMap(ClientPtr client, DeviceIntPtr dev, return BadAlloc; } } - else if (req->truncateSI) { + else if (req->truncateSI || req->firstSI + req->nSI > compat->num_si) { compat->num_si = req->firstSI + req->nSI; } sym = &compat->sym_interpret[req->firstSI];