Xorg recognizes Logitech Headset USB dongle as input device then segfaults in XIChangeDeviceProperty
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xserver-xorg-input-evdev (Ubuntu) |
Fix Released
|
High
|
Chase Douglas | ||
Precise |
Fix Released
|
High
|
Chase Douglas |
Bug Description
SRU Justification
=================
[Impact]
On i386 machines, plugging a Logitech headset with buttons in will crash an existing X session or prevent an X session from starting.
The crash is due to a stack buffer overrun write that corrupts the stack. This occurs because the buffer is not allocated with enough room to hold records for all input device valuators when multitouch valuators are present.
[Test Case]
Plug in the headset and see if X crashes. Alternatively, use utouch-evemu to create a virtual headset using the attached Logitech_
$ sudo utouch-evemu device Logitech_
[Regression Potential]
The fix touches code that affects how input device axes are labelled. These labels are used primarily for the GIMP and a few other drawing tools when using a tablet drawing device. It is possible that a regression could occur, causing the axes to not be labeled correctly.
Original bug report
===================
On Precise, when I plug in the USB dongle that comes with a Logitech H800 headset, xorg segfaults.
The following trace is captured in Xorg.log (see attachment XorgOldLog.txt)
45.488] (II) config/udev: Adding input device Logitech Logitech Wireless Headset (/dev/input/event7)
[ 45.488] (**) Logitech Logitech Wireless Headset: Applying InputClass "evdev keyboard catchall"
[ 45.488] (II) Using input driver 'evdev' for 'Logitech Logitech Wireless Headset'
[ 45.488] (II) Loading /usr/lib/
[ 45.488] (**) Logitech Logitech Wireless Headset: always reports core events
[ 45.488] (**) evdev: Logitech Logitech Wireless Headset: Device: "/dev/input/event7"
[ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Vendor 0x46d Product 0xa29
[ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Found absolute axes
[ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Found absolute multitouch axes
[ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Found keys
[ 45.488] (II) evdev: Logitech Logitech Wireless Headset: Configuring as mouse
[ 45.488] (II) evdev: Logitech Logitech Wireless Headset: Configuring as keyboard
[ 45.488] (**) Option "config_info" "udev:/
[ 45.488] (II) XINPUT: Adding extended input device "Logitech Logitech Wireless Headset" (type: KEYBOARD, id 9)
[ 45.488] (**) Option "xkb_rules" "evdev"
[ 45.488] (**) Option "xkb_model" "pc105"
[ 45.488] (**) Option "xkb_layout" "fr"
[ 45.488] (**) Option "xkb_variant" "oss"
[ 45.489] (II) evdev: Logitech Logitech Wireless Headset: initialized for absolute axes.
[ 45.489]
Backtrace:
[ 45.489] 0: /usr/bin/X (xorg_backtrace
[ 45.489] 1: /usr/bin/X (0x7fb000+0x18bdba) [0x986dba]
[ 45.489] 2: /lib/i386-
[ 45.489] 3: /lib/i386-
[ 45.489] 4: /usr/bin/X (XIChangeDevice
[ 45.489] 5: /usr/lib/
[ 45.489] 6: /usr/lib/
[ 45.489] 7: /usr/bin/X (ActivateDevice
[ 45.489] 8: /usr/bin/X (0x7fb000+0x8cad5) [0x887ad5]
[ 45.489] 9: /usr/bin/X (0x7fb000+0x9b012) [0x896012]
[ 45.489] 10: /usr/bin/X (0x7fb000+0x9b883) [0x896883]
[ 45.489] 11: /usr/bin/X (config_init+0x14) [0x8958e4]
[ 45.489] 12: /usr/bin/X (InitInput+0xba) [0x875daa]
[ 45.490] 13: /usr/bin/X (0x7fb000+0x2523e) [0x82023e]
[ 45.490] 14: /lib/i386-
[ 45.490] 15: /usr/bin/X (0x7fb000+0x255d9) [0x8205d9]
[ 45.490] Segmentation fault at address 0x120
[ 45.490]
Caught signal 11 (Segmentation fault). Server aborting
ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: xorg 1:7.6+12ubuntu1
ProcVersionSign
Uname: Linux 3.2.0-21-generic i686
.tmp.unity.
ApportVersion: 2.0-0ubuntu4
Architecture: i386
CompizPlugins: [core,composite
CompositorRunning: compiz
Date: Wed Apr 4 13:09:19 2012
DistUpgraded: 2009-11-14 19:02:58,254 DEBUG enabling apt cron job
DistroCodename: precise
DistroVariant: ubuntu
EcryptfsInUse: Yes
ExtraDebuggingI
MachineType: ASUSTeK Computer Inc. U3SG
ProcEnviron:
TERM=xterm
PATH=(custom, user)
LANG=en_US.utf8
SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=
SourcePackage: xorg
UpgradeStatus: Upgraded to precise on 2009-11-14 (871 days ago)
dmi.bios.date: 01/28/2008
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 305
dmi.board.
dmi.board.name: U3SG
dmi.board.vendor: ASUSTeK Computer Inc.
dmi.board.version: 1.0
dmi.chassis.
dmi.chassis.type: 10
dmi.chassis.vendor: ASUSTeK Computer Inc.
dmi.chassis.
dmi.modalias: dmi:bvnAmerican
dmi.product.name: U3SG
dmi.product.
dmi.sys.vendor: ASUSTeK Computer Inc.
version.compiz: compiz 1:0.9.7.4-0ubuntu1
version.libdrm2: libdrm2 2.4.32-1ubuntu1
version.
version.
version.
version.
version.
version.
version.
version.
Changed in linux (Ubuntu): | |
status: | New → Confirmed |
affects: | xorg (Ubuntu) → xorg-server (Ubuntu) |
Changed in linux (Ubuntu): | |
importance: | Undecided → Medium |
summary: |
Xorg recognizes Logitech Headset USB dongle as input device then - segfaults + segfaults in XIChangeDeviceProperty |
Changed in xorg-server (Ubuntu): | |
status: | Confirmed → Triaged |
Changed in xorg-server (Ubuntu Precise): | |
importance: | Undecided → High |
assignee: | nobody → Canonical X.org (canonical-x) |
milestone: | none → ubuntu-12.04 |
Changed in xorg-server (Ubuntu): | |
status: | Confirmed → Incomplete |
Changed in xorg-server (Ubuntu Precise): | |
status: | Confirmed → Incomplete |
description: | updated |
affects: | xorg-server (Ubuntu) → xserver-xorg-input-evdev (Ubuntu) |
Changed in xserver-xorg-input-evdev (Ubuntu): | |
milestone: | ubuntu-12.04 → none |
status: | Invalid → Triaged |
description: | updated |
tags: |
added: verification-failed removed: verification-needed |
Changed in xserver-xorg-input-evdev (Ubuntu Precise): | |
status: | Fix Committed → Triaged |
description: | updated |
description: | updated |
Changed in xserver-xorg-input-evdev (Ubuntu Precise): | |
status: | In Progress → Fix Committed |
tags: |
added: verification-done removed: verification-needed |
Rumour has it there is also an Oops associated with the crash.