Missing boundary-checks in XkbApplyMappingChange?
daniel at fooishbar.org
Sat Nov 17 06:51:30 PST 2007
On Sat, Nov 17, 2007 at 02:39:14PM +0100, Magnus Vigerlöf wrote:
> We (linuxwacom) got hit by a strange crash recently. As we want to be able to
> map some of the buttons on the tablet to key-presses/-releases for simple
> shortcuts we register a few keys with InitKeyClassDeviceStruct.
> The driver has until now registered at most 32 keys (8-40) to be able to
> report these, but with Xorg7.3 (and master) we've seen a crash by simply
> running one of the following commands (and only when a wacom InputDevice is
> $ xmodmap -e 'keysym Alt_L = Meta_L Alt_L'
> $ xmodmap -e "keysym BackSpace = Delete"
> The stacktrace that is printed is always the following:
> 2: /home/wigge/.Xorg/bin/Xorg(XkbApplyMappingChange+0x1b9) [0x818da69]
> By changing the number of registered keys to 512 I got rid of the crash, but I
> feel this is not the correct way of doing it.. I suspect a missing boundary
> check in XkbApplyMappingChange here. Is it so, or are we not using the
> interface in the correct way?
The short answer is that you should pretty much always have 255 keys in
your keymap. I know it sounds unnecessary, but it also hopelessly
complicates things. I'm hoping to simplify the server post-1.5 by just
always having 255 keys. In the meantime, it may work, but as you can
see, it's not incredibly well tested.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 189 bytes
Desc: Digital signature
More information about the xorg