[PATCH xrandr v4 2/5] xrandr: stricter --scale argument parsing
Giuseppe Bilotta
giuseppe.bilotta at gmail.com
Mon Feb 5 01:47:58 UTC 2018
We used to accept something like --scale 2x3junk as a valid input
(scaling x by 2 and y by 3), even though this isn't really a valid
scaling factor.
Fix by making sure there is nothing after the parsed number(s).
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta at gmail.com>
---
xrandr.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/xrandr.c b/xrandr.c
index 1085a95..6a38cf2 100644
--- a/xrandr.c
+++ b/xrandr.c
@@ -3014,11 +3014,12 @@ main (int argc, char **argv)
if (!strcmp ("--scale", argv[i]))
{
double sx, sy;
+ char junk;
if (!config_output) argerr ("%s must be used after --output\n", argv[i]);
if (++i >= argc) argerr ("%s requires an argument\n", argv[i-1]);
- if (sscanf (argv[i], "%lfx%lf", &sx, &sy) != 2)
+ if (sscanf (argv[i], "%lfx%lf%c", &sx, &sy, &junk) != 2)
{
- if (sscanf (argv[i], "%lf", &sx) != 1)
+ if (sscanf (argv[i], "%lf%c", &sx, &junk) != 1)
argerr ("failed to parse '%s' as a scaling factor\n", argv[i]);
sy = sx;
}
--
2.14.1.439.g647b9b4702
More information about the xorg-devel
mailing list