diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2012-05-17 12:10:04 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-05-18 09:15:52 +1000 |
commit | 6d47d334d8a876e7e094306c313246b87016b78a (patch) | |
tree | 432c38f8f67038f252adf95d0430bfd67177cbea | |
parent | cd569377cda9b5a4ee00c0137db14f625c76c40f (diff) |
Don't allow for scroll distances of 0 (#49965)
It'll either hang the server or blow up with divisions by 0, whichever one
comes first.
X.Org Bug 49965 <http://bugs.freedesktop.org/show_bug.cgi?id=49965>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
-rw-r--r-- | src/properties.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/properties.c b/src/properties.c index 0cbca09..72ba896 100644 --- a/src/properties.c +++ b/src/properties.c @@ -471,6 +471,9 @@ SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop, return BadMatch; dist = (INT32 *) prop->data; + if (dist[0] == 0 || dist[1] == 0) + return BadValue; + if (para->scroll_dist_vert != dist[0]) { para->scroll_dist_vert = dist[0]; SetScrollValuator(dev, priv->scroll_axis_vert, SCROLL_TYPE_VERTICAL, @@ -589,6 +592,9 @@ SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop, return BadMatch; circdist = *(float *) prop->data; + if (circdist == 0) + return BadValue; + para->scroll_dist_circ = circdist; } else if (property == prop_circscroll_trigger) { |