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:20:18 +1000
commit7ccca8e7d8fbf2ccb5a2dbbfbf06ff4dbd6b7149 (patch)
tree47df38d1afd54756a0b9c7b4ef939537320a8460
parentf8d970e191e6df05a8f2c26afdeea3e27b941a62 (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> (cherry picked from commit 6d47d334d8a876e7e094306c313246b87016b78a)
-rw-r--r--src/properties.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/properties.c b/src/properties.c
index 44ac306..3b3f1c5 100644
--- a/src/properties.c
+++ b/src/properties.c
@@ -519,6 +519,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];
#ifdef HAVE_SMOOTH_SCROLL
@@ -715,6 +718,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) {