[Lucid] xf86ScaleAxis problems with high resolution devices
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xorg-server (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Lucid |
Fix Released
|
Medium
|
Unassigned | ||
Natty |
Fix Released
|
High
|
Unassigned |
Bug Description
[Impact]
On certain higher resolution touchpads, an integer overflow can occur since their range exceeds the maximum int value.
This issue can crop up on Lucid if the user self-compiles -wacom or uses a backport package from a PPA. It does not affect the shipped version of -wacom in Lucid.
[Development Solution]
This was fixed upstream by using a 64-bit integer rather than 32-bit to extend the range. This fix is included in the upstream version of xorg-server we are shipping in natty.
[Stable Solution]
A backport of the fix has been made for Lucid.
https:/
[Test Case]
See below (requires affected hardware and rebuilding -wacom on Lucid)
[Regression Potential]
None. No APIs are changed, and increase of the data type has no other code effects.
[Original Report]
The xf86ScaleAxis function is used to scale x and y axis values of input devices between different resolutions. Due to internal integer overflow, the acceptable value range for its arguments are limited below their type (signed 32bit integer). This imposes a problem for high resolution devices, like the wacom Intuos 4 L, which have a total horizontal resolution of 65024. Example: when doing a scaling with a range of more than 46340 (Sxhigh-Sxlow), the integer X will wrap into negative values, and truncated to 0 at the end.
Among other devices, this problem affects wacom Intuos 4 L and XL tablets when compiling the xf86-input-wacom driver version 0.10.9 and above. Previous versions work, because they don't use the xf86ScaleAxis function. With current xorg releases this problem does not happen either, because a upstream patch (http://
If there is a chance for getting this patch included into 10.04 I'm willing to make a patch specific for the current xorg-server-1.7.6 package and test it.
Related branches
affects: | xorg (Ubuntu) → xorg-server (Ubuntu) |
tags: | added: lucid |
tags: | added: patch |
description: | updated |
Changed in xorg-server (Ubuntu Natty): | |
status: | Confirmed → Fix Released |
Changed in xorg-server (Ubuntu Lucid): | |
status: | New → Fix Committed |
importance: | Undecided → Medium |
Changed in xorg-server (Ubuntu Natty): | |
importance: | Undecided → High |
tags: | removed: verification-needed |
tags: | added: verification-done |
Yes, this looks like a suitable version of the fix that's included in natty.
This will need to be SRU'd of course.