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 <chasedouglas@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit b5aa2e0a5f
)
This commit is contained in:
parent
a2e4bcc2a0
commit
e6872c89bc
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue