From b5aa2e0a5fe233dc883084a5026013472e85bca4 Mon Sep 17 00:00:00 2001 From: Chase Douglas Date: Mon, 9 Nov 2009 22:54:39 -0500 Subject: [PATCH] Move FD_CLR above pInfo->read_input The event fd may be invalidated by the pInfo->read_input call. If it is invalidated, the subsequent FD_CLR call will segfault. Thus, the FD_CLR call must precede the pInfo->read_input call. Signed-off-by: Chase Douglas Signed-off-by: Peter Hutterer Signed-off-by: Keith Packard --- hw/xfree86/common/xf86Events.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 9487fe7b2..8cd765a1c 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -263,13 +263,14 @@ xf86Wakeup(pointer blockData, int err, pointer pReadmask) (FD_ISSET(pInfo->fd, &devicesWithInput) != 0)) { int sigstate = xf86BlockSIGIO(); - pInfo->read_input(pInfo); - xf86UnblockSIGIO(sigstate); /* * Remove the descriptior from the set because more than one * device may share the same file descriptor. */ FD_CLR(pInfo->fd, &devicesWithInput); + + pInfo->read_input(pInfo); + xf86UnblockSIGIO(sigstate); } pInfo = pInfo->next; }