summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2012-03-05 17:10:56 (GMT)
committerRichard Hughes <richard@hughsie.com>2012-03-05 17:11:25 (GMT)
commitd361fcee80bbcf8cf2dd692eb91b05800b29f5fb (patch)
treefa2fbea1d3da77dbe215845bdd8bb5c64afae2d8
parent3c7db4a1e5ad853ffd14f548740cbbff43f3c51c (diff)
downloadgnome-settings-daemon-d361fcee80bbcf8cf2dd692eb91b05800b29f5fb.zip
gnome-settings-daemon-d361fcee80bbcf8cf2dd692eb91b05800b29f5fb.tar.xz
power: Do not overflow when pressing the keyboard brightness down button
Resolves: https://bugzilla.gnome.org/show_bug.cgi?id=670116
-rw-r--r--plugins/power/gsd-power-manager.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
index b6ca32a..5465f0c 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -136,8 +136,10 @@ static const gchar introspection_xml[] =
static int
abs_to_percentage (int min, int max, int value)
{
- g_return_val_if_fail (max > min, -1);
- return (((value - min) * 100) / (max - min));
+ g_return_val_if_fail (max > min, -1);
+ g_return_val_if_fail (value < min, -1);
+ g_return_val_if_fail (value > max, -1);
+ return (((value - min) * 100) / (max - min));
}
#define ABS_TO_PERCENTAGE(min, max, value) abs_to_percentage(min, max, value)
#define PERCENTAGE_TO_ABS(min, max, value) (min + (((max - min) * value) / 100))
@@ -3892,7 +3894,7 @@ handle_method_call_keyboard (GsdPowerManager *manager,
GVariant *parameters,
GDBusMethodInvocation *invocation)
{
- guint step;
+ gint step;
gint value = -1;
gboolean ret;
guint percentage;