[PATCH app/xrandr] Fix checking for valid argument of --dpi

Giuseppe Bilotta giuseppe.bilotta at gmail.com
Thu Oct 18 07:03:27 UTC 2018


Hello,

On Thu, Apr 12, 2018 at 8:53 PM Pali Rohár <pali.rohar at gmail.com> wrote:
> -           if (++i >= argc) argerr ("%s requires an argument\n", argv[i-1]);
> +           if (++i >= argc || !argv[i][0]) argerr ("%s requires an argument\n", argv[i-1]);

I don't think this change is necessary, if arg[i][0] is NULL it means
there _was_ an argument, but it was empty. Getting different error
messages from `xrandr --dpi ''` and `xrandr --dpi ' '` doesn't seem
like a good idea to me.

> +           errno = 0;
>             dpi = strtod(argv[i], &strtod_error);
> -           if (argv[i] == strtod_error)
> +           if (*strtod_error || errno || dpi == 0)

While we're at it, I would make the check for dpi <= 0, since negative
values aren't valid either (in fact, negative values are effectively a
no-op, since they set the DPI from the current framebuffer settings,
and then set the virtual framebuffer physical dimensions from the
DPI).

Cheers,

Giuseppe Bilotta


More information about the xorg-devel mailing list