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:20:18 +1000 |
commit | 7ccca8e7d8fbf2ccb5a2dbbfbf06ff4dbd6b7149 (patch) | |
tree | 47df38d1afd54756a0b9c7b4ef939537320a8460 /src/properties.c | |
parent | f8d970e191e6df05a8f2c26afdeea3e27b941a62 (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)
Diffstat (limited to 'src/properties.c')
-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 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) { |