From f1c7b95d83948160a0d5796ef6c16fc0d1bf5c5d Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 20 Mar 2009 13:55:00 +1000 Subject: [PATCH] dix: do percentage check before device check in ProcBell This is just for correctness. The server should return BadValue for anything not in [-100, 100]. Signed-off-by: Peter Hutterer --- dix/devices.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dix/devices.c b/dix/devices.c index a79d04eb2..abe2c9e25 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -1905,6 +1905,11 @@ ProcBell(ClientPtr client) REQUEST(xBellReq); REQUEST_SIZE_MATCH(xBellReq); + if (stuff->percent < -100 || stuff->percent > 100) { + client->errorValue = stuff->percent; + return BadValue; + } + /* Seems like no keyboard actually has the BellProc set. Returning * BadDevice (previous code) will make apps crash badly. The man pages * doesn't say anything about a BadDevice being returned either. @@ -1913,11 +1918,6 @@ ProcBell(ClientPtr client) if (!keybd->kbdfeed->BellProc) return Success; - if (stuff->percent < -100 || stuff->percent > 100) { - client->errorValue = stuff->percent; - return BadValue; - } - newpercent = (base * stuff->percent) / 100; if (stuff->percent < 0) newpercent = base + newpercent;