From f3a5d67688a0f691ef23cb44b1fdda190b5b8bef Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Sun, 23 Sep 2007 12:43:31 +0300 Subject: [PATCH] GetKeyboardEvents: Reject out-of-range keycodes (bug #12528) We can only deal with keycodes between 8 and 255, so make sure that we never accept anything out of this range. (cherry picked from commit 0e800ca4651a947ccef239e6fe7bf64aab92257c) --- dix/getevents.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dix/getevents.c b/dix/getevents.c index f921a2205..b70653da7 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -409,6 +409,7 @@ GetKeyboardValuatorEvents(xEvent *events, DeviceIntPtr pDev, int type, if (!events) return 0; + /* DO NOT WANT */ if (type != KeyPress && type != KeyRelease) return 0; @@ -416,6 +417,9 @@ GetKeyboardValuatorEvents(xEvent *events, DeviceIntPtr pDev, int type, (pDev->coreEvents && !inputInfo.keyboard->key)) return 0; + if (key_code < 8 || key_code > 255) + return 0; + if (pDev->coreEvents) numEvents = 2; else