Xorg crashed with SIGSEGV in WriteToClient() with buf = 0x100000000 from ProcXIGetProperty()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Xserver Xorg Input Synaptics |
Fix Released
|
High
|
|||
xserver-xorg-input-synaptics (Ubuntu) |
Fix Released
|
High
|
Maarten Lankhorst | ||
Precise |
Fix Released
|
High
|
Maarten Lankhorst |
Bug Description
[Impact]
Crash bug and silent memory corruption due to out of bounds access that may not be noticed until much much later, in which case it's fatal.
[Test Case]
The easiest is running with valgrind, starting X and then while doing touch motions launch /etc/X11/Xsession and disable/enable touchpad with the keyboard fn keys.
1. Start X (either with or without valgrind attached)
2. Start doing motions with 2 fingers and simultaneously launch /etc/X11/Xsession through ssh. If you're running valgrind, you will see a out of bound access.
3. Disable touchpad through builtin keys.
Broken Behavior: X will die due to memory corrupted memory being freed
Fixed Behavior: X survives
[Regression Potential]
The fixed package is upstream as 1.6.1-1ubuntu2, but this is in fact 1.6.2-1 without the commit tagging it as such. As such a few weeks of testing has already been done by quantal users. The package will also fix jumpy cursor behavior after suspend on some macbooks.
[Original Report]
This crash occurred on resume from suspend (to RAM) on a precise box up-to-date as of Feb 24.
=> 0x7f5ca44a42bc <free+28>: mov -0x8(%rdi),%rax
0x7f5ca44a42c0 <free+32>: lea -0x10(%rdi),%rsi
0x7f5ca44a42c4 <free+36>: test $0x2,%al
0x7f5ca44a42c6 <free+38>: jne 0x7f5ca44a42f0 <free+80>
0x7f5ca44a42c8 <free+40>: test $0x4,%al
0x7f5ca44a42ca <free+42>: lea 0x33344f(%rip),%rdi # 0x7f5ca47d7720
0x7f5ca44a42d1 <free+49>: je 0x7f5ca44a42df <free+63>
0x7f5ca44a42d3 <free+51>: mov %rsi,%rax
0x7f5ca44a42d6 <free+54>: and $0xfffffffffc00
0x7f5ca44a42dc <free+60>: mov (%rax),%rdi
0x7f5ca44a42df <free+63>: xor %edx,%edx
0x7f5ca44a42e1 <free+65>: jmpq 0x7f5ca44a01f0
0x7f5ca44a42e6 <free+70>: nopw %cs:0x0(
0x7f5ca44a42f0 <free+80>: mov 0x332e9d(
0x7f5ca44a42f7 <free+87>: test %r11d,%r11d
0x7f5ca44a42fa <free+90>: jne 0x7f5ca44a4330 <free+144>
#9 0x00007f5ca641ad93 in FatalSignal (signo=11) at ../../os/log.c:550
beenhere = 1
#10 <signal handler called>
No symbol table info available.
#11 __memmove_
No locals.
#12 0x00007f5ca64128e2 in WriteToClient (who=0x7f5caa9a
oc = 0x7f5caa904180
oco = 0x7f5caa90a700
padBytes = <optimized out>
buf = 0x100000000 <Address 0x100000000 out of bounds>
#13 0x00007f5ca63afeac in ProcXIGetProperty (client=
stuff = 0x7f5caada9bb0
dev = 0x7f5caa3f3630
reply = {repType = 1 '\001', RepType = 59 ';', sequenceNumber = 24, length = 1, type = 19, bytes_after = 0, num_items = 1, format = 32 ' ', pad0 = 0 '\000', pad1 = 0, pad2 = 2791869824, pad3 = 32604}
length = 4
rc = <optimized out>
format = 32
nitems = 1
bytes_after = 0
data = 0x100000000 <Address 0x100000000 out of bounds>
type = 19
ProblemType: Crash
DistroRelease: Ubuntu 12.04
Package: xserver-xorg-core 2:1.11.4-0ubuntu4
ProcVersionSign
Uname: Linux 3.2.0-17-generic x86_64
.tmp.unity.
ApportVersion: 1.93-0ubuntu2
Architecture: amd64
CompizPlugins: No value set for `/apps/
CompositorRunning: compiz
Date: Mon Feb 27 09:09:11 2012
DistUpgraded: Log time: 2012-01-16 18:59:55.567693
DistroCodename: precise
DistroVariant: ubuntu
DkmsStatus: virtualbox, 4.1.8, 3.2.0-17-generic, x86_64: installed
ExecutablePath: /usr/bin/Xorg
ExtraDebuggingI
GraphicsCard:
Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 18) (prog-if 00 [VGA controller])
Subsystem: CLEVO/KAPOK Computer Device [1558:3100]
InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Release amd64 (20101007)
Lsusb:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 004: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
MachineType: System76, Inc. Lemur UltraThin
ProcCmdline: /usr/bin/X :0 -auth /var/run/
ProcEnviron:
ProcKernelCmdLine: BOOT_IMAGE=
SegvAnalysis:
Segfault happened at: 0x7f5ca44a42bc <free+28>: mov -0x8(%rdi),%rax
PC (0x7f5ca44a42bc) ok
source "-0x8(%rdi)" (0xfffffff8) not located in a known VMA region (needed readable region)!
destination "%rax" ok
SegvReason: reading unknown VMA
Signal: 11
SourcePackage: xorg-server
StacktraceTop:
?? () from /lib/x86_
WriteToClient ()
?? ()
?? ()
?? ()
Title: Xorg crashed with SIGSEGV in WriteToClient()
UpgradeStatus: Upgraded to precise on 2012-01-17 (41 days ago)
UserGroups:
dmi.bios.date: 11/11/2010
dmi.bios.vendor: Phoenix Technologies LTD
dmi.bios.version: CALPELLACRB.
dmi.board.
dmi.board.name: Lemur UltraThin
dmi.board.vendor: System76, Inc.
dmi.board.version: lemu2
dmi.chassis.
dmi.chassis.type: 10
dmi.chassis.vendor: System76, Inc.
dmi.chassis.
dmi.modalias: dmi:bvnPhoenixT
dmi.product.name: Lemur UltraThin
dmi.product.
dmi.sys.vendor: System76, Inc.
version.compiz: compiz 1:0.9.7.
version.ia32-libs: ia32-libs 20090808ubuntu33
version.libdrm2: libdrm2 2.4.30-1ubuntu1
version.
version.
version.
version.
version.
version.
version.
version.
description: | updated |
Changed in xorg-server (Ubuntu): | |
status: | New → Triaged |
importance: | Medium → High |
status: | Triaged → Confirmed |
visibility: | private → public |
description: | updated |
summary: |
- Xorg crashed with SIGSEGV in WriteToClient() from ProcXIGetProperty() + Xorg crashed with SIGSEGV in WriteToClient() with buf = 0x100000000 from + ProcXIGetProperty() |
affects: | xorg-server (Ubuntu) → xserver-xorg-input-synaptics (Ubuntu) |
Changed in xserver-xorg-input-synaptics (Ubuntu): | |
status: | Confirmed → Triaged |
assignee: | nobody → Chase Douglas (chasedouglas) |
Changed in xserver-xorg-input-synaptics (Ubuntu Precise): | |
status: | New → Triaged |
importance: | Undecided → High |
assignee: | nobody → Chase Douglas (chasedouglas) |
Changed in xserver-xorg-input-synaptics: | |
importance: | Unknown → High |
status: | Unknown → In Progress |
Changed in xserver-xorg-input-synaptics: | |
status: | In Progress → Fix Released |
Changed in xserver-xorg-input-synaptics (Ubuntu): | |
assignee: | Chase Douglas (chasedouglas) → Maarten Lankhorst (mlankhorst) |
Changed in xserver-xorg-input-synaptics (Ubuntu Precise): | |
assignee: | Chase Douglas (chasedouglas) → Maarten Lankhorst (mlankhorst) |
description: | updated |
Changed in xserver-xorg-input-synaptics (Ubuntu Precise): | |
status: | Triaged → Fix Released |
Changed in xserver-xorg-input-synaptics (Ubuntu Precise): | |
status: | Fix Released → In Progress |
StacktraceTop: 46f0, count=4, __buf=0x100000000) at /usr/include/ x86_64- linux-gnu/ bits/string3. h:58 0x7f5caa9a46f0) at ../../Xi/ xiproperty. c:1263 dispatch. c:439 main.c: 287
WriteToClient (who=0x7f5caa9a
ProcXIGetProperty (client=
Dispatch () at ../../dix/
main (argc=10, argv=<optimized out>, envp=<optimized out>) at ../../dix/