summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2012-05-17 12:10:04 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2012-05-18 09:15:52 +1000
commit6d47d334d8a876e7e094306c313246b87016b78a (patch)
tree432c38f8f67038f252adf95d0430bfd67177cbea
parentcd569377cda9b5a4ee00c0137db14f625c76c40f (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.c6
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) {