On Tue, Dec 30, 2014 at 3:42 PM, Pádraig Brady <p...@draigbrady.com> wrote:
> Since commit 3bf75404, on 26-09-1998, errno may not have been reset.
> Noticed with a spurious coreutils test failure on Darwin 14.0.0.
>
> * lib/xstrtol.c (__xstrtol): Always reset errno before returning.

Cool (well, sort of :-), since it's mine), a 16-year-old bug.
Thanks for noticing/fixing it!

> --- a/lib/xstrtol.c
> +++ b/lib/xstrtol.c
> @@ -97,6 +97,8 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
>
>    p = (ptr ? ptr : &t_ptr);
>
> +  errno = 0;
> +
>    if (! TYPE_SIGNED (__strtol_t))
>      {
>        const char *q = s;
> @@ -107,7 +109,6 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
>          return LONGINT_INVALID;
>      }
>
> -  errno = 0;
>    tmp = __strtol (s, p, strtol_base);
...

Reply via email to