Having an input device section for a wacom device causes a server crash if the 
device is not present. The attached patch (against server-1.6-branch) fixes 
the issue.

Thanks,
Ander
From 2e8b90588e7c43962d288c3c773b495316d5a9d2 Mon Sep 17 00:00:00 2001
From: Ander Conselvan de Oliveira <[email protected]>
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.
---
 hw/xfree86/common/xf86Xinput.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 96352a4..0c0e089 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -542,8 +542,10 @@ xf86NewInputDevice(IDevPtr idev, DeviceIntPtr *pdev, BOOL enable)
 
     dev = pInfo->dev;
     rval = ActivateDevice(dev);
-    if (rval != Success)
+    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)
-- 
1.6.2.1

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to