* lib/glob.c (glob): Fix longstanding misuse of errno after getpwnam_r, which returns an error number rather than setting errno. --- ChangeLog | 5 +++++ lib/glob.c | 15 +++------------ 2 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/ChangeLog b/ChangeLog index 4dd0367..b5c3430 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2017-09-02 Paul Eggert <egg...@cs.ucla.edu> + glob: fix getpwnam_r errno typo + * lib/glob.c (glob): Fix longstanding misuse of errno after + getpwnam_r, which returns an error number rather than setting + errno. + glob: fix typo in recent change * lib/glob.c (glob) [!HAVE_GETPWNAM_R && !_LIBC]: Fix recently-introduced typo. diff --git a/lib/glob.c b/lib/glob.c index f1b30ee..7ca1136 100644 --- a/lib/glob.c +++ b/lib/glob.c @@ -644,13 +644,8 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int), while (getpwnam_r (name, &pwbuf, pwtmpbuf.data, pwtmpbuf.length, &p) - != 0) + == ERANGE) { - if (errno != ERANGE) - { - p = NULL; - break; - } if (!scratch_buffer_grow (&pwtmpbuf)) { retval = GLOB_NOSPACE; @@ -815,13 +810,9 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int), struct passwd pwbuf; while (getpwnam_r (user_name, &pwbuf, - pwtmpbuf.data, pwtmpbuf.length, &p) != 0) + pwtmpbuf.data, pwtmpbuf.length, &p) + == ERANGE) { - if (errno != ERANGE) - { - p = NULL; - break; - } if (!scratch_buffer_grow (&pwtmpbuf)) { retval = GLOB_NOSPACE; -- 2.7.4