An xorg.conf InputDevice section that does not have Option Type set is
invalid. Skip the type assignment and return, triggering an error about an
invalid type lateron.

Fixes crash triggered as of xf86-input-wacom-0.17.0-8-g0debde6 by having an
InputDevice section like this:

Section "InputDevice"
    Identifier "--device--"
    Driver "wacom"
    Option "CorePointer" "on"
EndSection

This would lead to the device being assigned a type and assumed to be for
hotplugging. Later, when the device attributes are duplicated during
QueueHotplug, asprintf() tries to duplicate attr->product, which is always
NULL for xorg.conf devices.

Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
---
Full config for the lazy :)

Section "ServerLayout"
    Identifier "Dummy layout"
    Option "AutoAddDevices" "off"
    Screen 0 "dummy screen" 0 0
    InputDevice "--device--"
EndSection

Section "ServerFlags"
     Option "Log" "flush"
EndSection

Section "Device"
    Identifier "dummy"
    Driver "dummy"
EndSection

Section "Screen"
    Identifier "dummy screen"
    Device "dummy"
EndSection

Section "InputDevice"
    Identifier "--device--"
    Driver "wacom"
    Option "CorePointer" "on"
EndSection

Running 9f896f4800593c7fa232e40fd934b7f51d0dde6d (0.17.99.1) with that config
file below crashes the server immediately. git bisect pointed to
xf86-input-wacom-0.17.0-8-g0debde6, but that seems to just trigger the bug,
it's not the direct cause of it.

 src/wcmValidateDevice.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c
index 658092b..bc5ad44 100644
--- a/src/wcmValidateDevice.c
+++ b/src/wcmValidateDevice.c
@@ -578,6 +578,9 @@ int wcmNeedAutoHotplug(InputInfoPtr pInfo, const char 
**type)
        if (*type) /* type specified, don't hotplug */
                return 0;
 
+       if (!source) /* xorg.conf device, don't auto-pick type */
+               return 0;
+
        if (source && strcmp(source, "server/hal") && strcmp(source, 
"server/udev"))
                return 0;
 
-- 
1.7.11.7


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to