Am 05.02.2018 02:47, schrieb Giuseppe Bilotta:
> 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 <[email protected]>
> ---
>  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;
>           }

can the scanf be converted to strtod ? there you get an endpointer by default.

re,
 wh


_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to