From b44c1118f3bab6d5f28fa42e0c322fbaec005012 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 14 Nov 2007 14:08:21 +1030 Subject: [PATCH] dix: Return Success from ProcBell if no BellProc is set. We must not return BadDevice, this causes applications to crash. If no BellProc is set, just quietly do nothing and report a Success. --- dix/devices.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dix/devices.c b/dix/devices.c index fa80a0c32..2960e0950 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2011,8 +2011,13 @@ ProcBell(ClientPtr client) REQUEST(xBellReq); REQUEST_SIZE_MATCH(xBellReq); + /* 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. + * So just quietly do nothing and pretend everything has worked. + */ if (!keybd->kbdfeed->BellProc) - return BadDevice; + return Success; if (stuff->percent < -100 || stuff->percent > 100) { client->errorValue = stuff->percent;