[PATCH v2 1/7] xkb: Check for unsuported comibnation of action for XkbSetMap
Pauli Nieminen
ext-pauli.nieminen at nokia.com
Wed Jul 28 12:47:01 PDT 2010
This prevents validation code from using unitialized values. Validation
code depends on the previous step to produce lookup table for the next step.
Fixes:
Using uninitialized element of array "symsPerKey" in call to function
"CheckKeyActions"
Using uninitialized element of array "mapWidths" in call to function
"CheckKeySyms"
Signed-off-by: Pauli Nieminen <ext-pauli.nieminen at nokia.com>
---
Improved commit message
xkb/xkb.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/xkb/xkb.c b/xkb/xkb.c
index 4105c1c..618d0bc 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -2367,6 +2367,14 @@ _XkbSetMapChecks(ClientPtr client, DeviceIntPtr dev, xkbSetMapReq *req, char* va
}
}
+ if ((!(req->present & XkbKeySymsMask) &&
+ (req->present & XkbKeyActionsMask)) ||
+ (!(req->present & XkbKeyTypesMask) &&
+ (req->present & XkbKeySymsMask))) {
+ client->errorValue = req->present;
+ return BadMatch;
+ }
+
if ((req->present & XkbKeyTypesMask) &&
(!CheckKeyTypes(client,xkb,req,(xkbKeyTypeWireDesc **)&values,
&nTypes,mapWidths))) {
--
1.6.3.3
More information about the xorg-devel
mailing list