From: Pádraig Brady Date: Tue, 30 Dec 2014 23:37:26 +0000 (+0000) Subject: xstrtol: ensure errno is reset X-Git-Tag: v1.0~7213 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=55cda57aa2efe89cee367f73fb4b0ce55a1c8c18;p=gnulib.git xstrtol: ensure errno is reset 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. --- diff --git a/ChangeLog b/ChangeLog index f660a4c558..4e75982bb8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2014-12-30 Pádraig Brady + + xstrtol: ensure errno is reset + 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. + 2014-12-28 Paul Eggert utimens: fix dependency typo diff --git a/lib/xstrtol.c b/lib/xstrtol.c index 544a74aa1c..7ab864bb52 100644 --- 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); if (*p == s)