summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2018-02-06 22:02:42 +0100
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2018-02-27 12:18:07 +0100
commitda61a8bd95bd20d45397eee6a6c0d3ad5a50c399 (patch)
treef12d35d92d108fefbe899f5dfef73246366d36f5
parent5e95248b5bab1254ecedffb6cb681b0ee06c0f29 (diff)
xrandr: gamma and scaling factors must be positive
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Keith Packard <keithp@keithp.com>
-rw-r--r--xrandr.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/xrandr.c b/xrandr.c
index f6c425f..7f1e867 100644
--- a/xrandr.c
+++ b/xrandr.c
@@ -2979,6 +2979,9 @@ main (int argc, char **argv)
argerr ("%s: invalid argument '%s'\n", argv[i-1], argv[i]);
config_output->gamma.green = config_output->gamma.blue = config_output->gamma.red;
}
+ if (config_output->gamma.red <= 0.0 || config_output->gamma.green <= 0.0 ||
+ config_output->gamma.blue <= 0.0)
+ argerr ("gamma correction factors must be positive\n");
config_output->changes |= changes_gamma;
setit_1_2 = True;
continue;
@@ -3030,6 +3033,8 @@ main (int argc, char **argv)
argerr ("failed to parse '%s' as a scaling factor\n", argv[i]);
sy = sx;
}
+ if (sx <= 0.0 || sy <= 0.0)
+ argerr ("scaling factors must be positive\n");
init_transform (&config_output->transform);
config_output->transform.transform.matrix[0][0] = XDoubleToFixed (sx);
config_output->transform.transform.matrix[1][1] = XDoubleToFixed (sy);