On Wed, Oct 24, 2012 at 10:29:59PM -0700, Ping Cheng wrote:
> On Wednesday, October 24, 2012, Jason Gerecke wrote:
> 
> > On Wed, Oct 24, 2012 at 12:20 AM, Peter Hutterer
> > <peter.hutte...@who-t.net <javascript:;>> wrote:
> > > 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.
> 
> 
>  I think the above comments reflect a valid reaction of the driver to an
> invalid xorg.conf section. The part that I miss is how to link it to the
> description below.

The above is the behaviour after applying the patch. Without the patch, the
behaviour is to crash. Which admittedly is a strong hint that something
isn't right with the config, but not verbose enough to point the user at
what they've done wrong :)

> > > 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 <javascript:;>>
> > > ---
> > > 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;
> > > +
> 
> 
> I am too lazy to read the whole routine/code. I guess this dummy --device--
> will be ignored and some message indicating invalid xorg.conf options will
> be posted. Then, a solution to make the device usable for the dummy user
> would be to add it through hot plugging.
> 
> Or, maybe we do not want to make the dummy feel good :)?

Option "Type" has always been required for xorg.conf configured devices, we
don't hotplug those on the assumption that a user that only adds, say,
stylus + eraser (but not pad) to the xorg.conf has a valid reason to do so.

The problem was that having a device _without_ Option Type would crash the
server. With that patch it leaves the type as NULL and the driver will then
complain "no valid type set"

Cheers,
   Peter


> 
> Ping
> 
> 
> > >         if (source && strcmp(source, "server/hal") && strcmp(source,
> > "server/udev"))
> > >                 return 0;
> > >L
> > > --
> > > 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