Summary: | x11-drivers/xf86-input-evdev-1.2.0 crashes when pressing non-left mouse button | ||||||
---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Aaron <aaron667> | ||||
Component: | Input/evdev | Assignee: | Zephaniah E. Hull <warp-spam+fdo> | ||||
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||
Severity: | normal | ||||||
Priority: | medium | CC: | bernhard.seibold, cbm, daniel, jon.wagoner, lindevel | ||||
Version: | unspecified | ||||||
Hardware: | Other | ||||||
OS: | All | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
Description
Aaron
2008-01-09 08:14:36 UTC
/proc/bus/input/devices contains those infos about the mouse/keyboard: I: Bus=0003 Vendor=046d Product=c512 Version=0110 N: Name="Logitech USB Receiver" P: Phys=usb-0000:00:02.0-4/input0 S: Sysfs=/class/input/input1 U: Uniq= H: Handlers=kbd event1 B: EV=120003 B: KEY=1000000000007 ff800000000007ff febeffdfffefffff fffffffffffffffe B: LED=ff1f I: Bus=0003 Vendor=046d Product=c512 Version=0110 N: Name="Logitech USB Receiver" P: Phys=usb-0000:00:02.0-4/input1 S: Sysfs=/class/input/input2 U: Uniq= H: Handlers=kbd mouse0 event2 B: EV=20007 B: KEY=1fffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff 3300007 ff80d8fafd01d000 1f000000000000 0 B: REL=143 B: LED=ff00 I am using a similar Mouse/Keyboard combo with single reciever from Logitech, the LX700 (iirc). My Xorg.0.log looks exactly the same, except that I have "xkb_layout=de" and not "us". Daniel: I'm adding you to the CC list. Remind me who I need to send what to in order to get Xorg to buy me one of these bloody Logitech units? I keep having bugs, because they lie through their teeth. (In reply to comment #3) > Daniel: I'm adding you to the CC list. > > Remind me who I need to send what to in order to get Xorg to buy me one of > these bloody Logitech units? I keep having bugs, because they lie through > their teeth. Email xf_board@x.org and we'll sort you out. Same problem here, same Xorg.0.log, just slightly different Logitech device: I: Bus=0003 Vendor=046d Product=c504 Version=0110 N: Name="Logitech USB Receiver" P: Phys=usb-0000:00:1a.0-1/input0 S: Sysfs=/class/input/input2 U: Uniq= H: Handlers=kbd event2 B: EV=120003 B: KEY=10000 7 ff800000 7ff febeffdf ffefffff ffffffff fffffffe B: LED=ff1f I: Bus=0003 Vendor=046d Product=c504 Version=0110 N: Name="Logitech USB Receiver" P: Phys=usb-0000:00:1a.0-1/input1 S: Sysfs=/class/input/input3 U: Uniq= H: Handlers=kbd mouse0 event3 B: EV=20007 B: KEY=1fffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0 2000000 1878 d800d000 1e0000 0 0 0 B: REL=30f B: LED=ff00 I am also getting the crashes on middle/right clicks. I have a Logitech Cordless Elite keyboard, and a Logitech Cordless Optical Trackman, with a single receiver. I don't know enough to try to fix the problem, but I tried to trace the code to see what was happening. It is crashing in EvdevBtnProcess when trying to call the function stored in b_map. It looks like all three buttons were getting their pEvdev->state->btn->b_map function set to EvdevMapButton in EvdevParseMapToButton, but when EvdevBtnProcess is called, the b_map is set to 81 and 82 for the right and middle clicks, instead of the pointer to EvdevMapButton (the left click still shows the address of EvdevMapButton for the b_map pointer when EvdevBtnProcess is called). Hard-coding EvdevBtnProcess to call EvdevMapButton when it sees those bogus function pointers has all of my buttons working correctly for now. Is there any other info I can get you to help track this down? Created attachment 13871 [details] [review] b_map_data member was set to size ABS_MAX, instead of BTN_MAX b_map_data was sized as ABS_MAX instead of BTN_MAX. When evdev was iterating through the higher buttons on the mouse, it was writing past the end of b_map_data, and overwriting some of the b_map pointers. Confirming: Patch works. Thanks a lot! pushed as 5adbc6b98ca1da9a426528ce0df64a992feff3bd. Thanks. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.