On Sat, Mar 16, 2024 at 12:55:07PM +0100, Alejandro Colomar wrote:
> In case INT_MAX==LONG_MAX, we need to check for ERANGE to reject
> high values.  The test 'n > INT_MAX' would never be true.
> 
> Fixes: d21a9dbc7a83 ("Werner LEMBERG <w...@gnu.org>")

Oops, this should be
("* src/devices/grolbp/lbp.cc: (long_options): Add -w/--linewidth option.")

In v5 I'll send it right.  Meanwhile, please have a look at the patch.

> Link: <https://savannah.gnu.org/bugs/?65451>
> Link: <https://savannah.gnu.org/bugs/?65452>
> Cc: "G. Branden Robinson" <bran...@debian.org>
> Cc: Dave Kemper <saint.s...@gmail.com>
> Cc: "James K. Lowden" <jklow...@schemamania.org>
> Cc: Colin Watson <cjwat...@debian.org>
> Cc: Werner LEMBERG <w...@gnu.org>
> Signed-off-by: Alejandro Colomar <a...@kernel.org>
> ---
>  src/devices/grolbp/lbp.cpp | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/src/devices/grolbp/lbp.cpp b/src/devices/grolbp/lbp.cpp
> index c05b42ec3..c28f2e672 100644
> --- a/src/devices/grolbp/lbp.cpp
> +++ b/src/devices/grolbp/lbp.cpp
> @@ -707,10 +707,11 @@ int main(int argc, char **argv)
>      case 'w':
>        {
>       char *ptr;
> +     errno = 0;
>       long n = strtol(optarg, &ptr, 10);
>       if (ptr == optarg)
>         error("argument for -w must be a non-negative integer");
> -     else if (n < 0 || n > INT_MAX)
> +     else if (errno == ERANGE || n < 0 || n > INT_MAX)
>         error("out of range argument for -w");
>       else
>         linewidth_factor = int(n);
> -- 
> 2.43.0
> 



-- 
<https://www.alejandro-colomar.es/>

Attachment: signature.asc
Description: PGP signature

Reply via email to