From efa31092d6703397121a0ada4f7205a8ecad3d3d Mon Sep 17 00:00:00 2001 From: Ander Conselvan de Oliveira Date: Mon, 6 Apr 2009 16:01:20 -0300 Subject: [PATCH] xfree86: Remove device from inputInfo.devices if ActivateDevice failed. After the call to xf86ActivateDevice, the new device will be added to inputInfo.devices. However, if the subsequent call to ActivateDevice fails, the correponding InputInfoRec for the device is deleted but an entry still remains in inputInfo.devices. This might lead to a server crash later on (on InitAndStartDevices for instance) when the device control proc would be called for an invalid device. Signed-off-by: Peter Hutterer --- hw/xfree86/common/xf86Xinput.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index 3d89e39..8d08d7e 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -543,7 +543,10 @@ xf86NewInputDevice(IDevPtr idev, DeviceIntPtr *pdev, BOOL enable) dev = pInfo->dev; rval = ActivateDevice(dev); if (rval != Success) + { + RemoveDevice(dev); goto unwind; + } /* Enable it if it's properly initialised and we're currently in the VT */ if (enable && dev->inited && dev->startup && xf86Screens[0]->vtSema)