26 lines
1.0 KiB
Diff
26 lines
1.0 KiB
Diff
@@ -, +, @@
|
|
---
|
|
xkb/xkb.c | 8 ++++----
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
--- a/xkb/xkb.c
|
|
+++ a/xkb/xkb.c
|
|
@@ -2991,13 +2991,13 @@ _XkbSetCompatMap(ClientPtr client, DeviceIntPtr dev,
|
|
XkbSymInterpretPtr sym;
|
|
unsigned int skipped = 0;
|
|
|
|
- if ((unsigned) (req->firstSI + req->nSI) > compat->num_si) {
|
|
- compat->num_si = req->firstSI + req->nSI;
|
|
+ if ((unsigned) (req->firstSI + req->nSI) > compat->size_si) {
|
|
+ compat->num_si = compat->size_si = req->firstSI + req->nSI;
|
|
compat->sym_interpret = reallocarray(compat->sym_interpret,
|
|
- compat->num_si,
|
|
+ compat->size_si,
|
|
sizeof(XkbSymInterpretRec));
|
|
if (!compat->sym_interpret) {
|
|
- compat->num_si = 0;
|
|
+ compat->num_si = compat->size_si = 0;
|
|
return BadAlloc;
|
|
}
|
|
}
|
|
--
|