← Back to team overview

ubuntu-x-swat team mailing list archive

[Bug 767159] Re: udevadm trigger --action=change crashes X.Org Server

 

I intercepted this in gdb, with the following result (unfortunately I
couldn't find a debug symbol package for the evdev driver):

Program received signal SIGSEGV, Segmentation fault.
0x00960600 in ?? () from /usr/lib/xorg/modules/input/evdev_drv.so
(gdb) bt
#0  0x00960600 in ?? () from /usr/lib/xorg/modules/input/evdev_drv.so
#1  0x08076243 in WakeupHandler (result=1, pReadmask=0x82463e0)
    at ../../dix/dixutils.c:419
#2  0x080a3fa5 in WaitForSomething (pClientsReady=0x8fdeca8)
    at ../../os/WaitFor.c:235
#3  0x08071ed2 in Dispatch () at ../../dix/dispatch.c:367
#4  0x0806470c in main (argc=8, argv=0xbf968064, envp=0xbf968088)
    at ../../dix/main.c:287
(gdb) frame 1
#1  0x08076243 in WakeupHandler (result=1, pReadmask=0x82463e0)
    at ../../dix/dixutils.c:419
419	../../dix/dixutils.c: No such file or directory.
	in ../../dix/dixutils.c
(gdb) p i
$1 = 3
(gdb) p handlers[i]
$2 = {BlockHandler = 0x9604b0, WakeupHandler = 0x9605e0, 
  blockData = 0x8fd06f8, deleted = 1}
(gdb) frame 0
#0  0x00960600 in ?? () from /usr/lib/xorg/modules/input/evdev_drv.so
(gdb) disassemble 0x9605e0,0x00960620
Dump of assembler code from 0x9605e0 to 0x960620:
   0x009605e0:	sub    $0xc,%esp
   0x009605e3:	mov    %esi,0x4(%esp)
   0x009605e7:	mov    0x10(%esp),%esi
   0x009605eb:	mov    %ebx,(%esp)
   0x009605ee:	mov    %edi,0x8(%esp)
   0x009605f2:	call   0x95bca7
   0x009605f7:	add    $0x59fd,%ebx
   0x009605fd:	mov    0x2c(%esi),%eax
=> 0x00960600:	cmpb   $0x0,0x1a5(%eax)
   0x00960607:	jne    0x960618
   0x00960609:	mov    (%esp),%ebx
   0x0096060c:	mov    0x4(%esp),%esi
   0x00960610:	mov    0x8(%esp),%edi
   0x00960614:	add    $0xc,%esp
   0x00960617:	ret    
   0x00960618:	mov    0x1b0(%eax),%edi
   0x0096061e:	call   0x95ba4c <GetTimeInMillis@plt>
End of assembler dump.
(gdb) info registers 
eax            0x19	25
ecx            0x91836a8	152581800
edx            0x8fd06f8	150800120
ebx            0x965ff4	9854964
esp            0xbf967c70	0xbf967c70
ebp            0x1	0x1
esi            0x8fd06f8	150800120
edi            0x20	32
eip            0x960600	0x960600
eflags         0x13212	[ AF IF #12 #13 RF ]
cs             0x73	115
ss             0x7b	123
ds             0x7b	123
es             0x7b	123
fs             0x0	0
gs             0x33	51
(gdb) 
Matching the evdev source code to the disassembly, it looks like the crash is at line:
xserver-xorg-input-evdev-2.6.0/src/emuMB.c:273:     if (pEvdev->emulateMB.pending)
with pEvdev == 0x19.

-- 
You received this bug notification because you are a member of Ubuntu-X,
which is subscribed to xorg-server in Ubuntu.
https://bugs.launchpad.net/bugs/767159

Title:
  udevadm trigger --action=change crashes X.Org Server

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/767159/+subscriptions


References