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
