File xf86-input-evdev-sig11-bug416043.diff of Package xorg-x11-driver-input

diff -u -p -r ../xf86-input-evdev-1.1.5.orig//src/evdev.c ./src/evdev.c
--- ../xf86-input-evdev-1.1.5.orig//src/evdev.c	2008-08-11 15:08:00.000000000 +0200
+++ ./src/evdev.c	2008-08-11 15:50:25.000000000 +0200
@@ -335,7 +335,11 @@ EvdevNew(evdevDriverPtr driver, evdevDev
     if (driver->configured) {
 	xf86ActivateDevice (pInfo);
 
-	pInfo->dev->inited = (device->callback(device->pInfo->dev, DEVICE_INIT) == Success);
+	if (device->pInfo->dev) {
+	    pInfo->dev->inited = (device->callback(device->pInfo->dev, DEVICE_INIT) == Success);
+	} else {
+	    pInfo->dev->inited = 0;
+	}
 	EnableDevice (pInfo->dev);
     }
 
diff -u -p -r ../xf86-input-evdev-1.1.5.orig//src/evdev_brain.c ./src/evdev_brain.c
--- ../xf86-input-evdev-1.1.5.orig//src/evdev_brain.c	2008-08-11 15:08:00.000000000 +0200
+++ ./src/evdev_brain.c	2008-08-11 15:11:47.000000000 +0200
@@ -211,7 +211,7 @@ evdevScanDevice (evdevDriverPtr driver,
     found = 0;
     for (device = driver->devices; device; device = device->next) {
 	if (MatchDevice (device, info)) {
-	    if (device->seen != (evdev_seq - 1)) {
+	    if ((device->seen != (evdev_seq - 1)) && device->pInfo->dev) {
 		device->device = xstrdup(info->dev);
 		device->phys = xstrdup(info->phys);
 		device->callback(device->pInfo->dev, DEVICE_ON);
@@ -298,7 +298,7 @@ evdevRescanDevices (InputInfoPtr pInfo)
 
     for (driver = evdev_drivers; driver; driver = driver->next)
 	for (device = driver->devices; device; device = device->next)
-	    if (device->seen == (evdev_seq - 1)) {
+	    if ((device->seen == (evdev_seq - 1)) && device->pInfo->dev) {
 		device->callback(device->pInfo->dev, DEVICE_OFF);
 
 		if (device->device)
openSUSE Build Service is sponsored by