1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-20 11:21:29 +03:00
1999-02-21  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/generic/glob.c (glob): Save previous errno.
This commit is contained in:
Ulrich Drepper
1999-02-21 14:29:07 +00:00
parent f6b56b5530
commit 13f2ac59bf
2 changed files with 10 additions and 3 deletions

View File

@@ -1,3 +1,7 @@
1999-02-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/glob.c (glob): Save previous errno.
1999-02-21 Ulrich Drepper <drepper@cygnus.com> 1999-02-21 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/glob.c (glob): Enlarge buffers for reentrant * sysdeps/generic/glob.c (glob): Enlarge buffers for reentrant

View File

@@ -642,6 +642,7 @@ glob (pattern, flags, errfunc, pglob)
size_t pwbuflen = sysconf (_SC_GETPW_R_SIZE_MAX); size_t pwbuflen = sysconf (_SC_GETPW_R_SIZE_MAX);
char *pwtmpbuf; char *pwtmpbuf;
struct passwd pwbuf; struct passwd pwbuf;
int save = errno;
if (pwbuflen == -1) if (pwbuflen == -1)
/* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX.
@@ -659,7 +660,7 @@ glob (pattern, flags, errfunc, pglob)
} }
pwbuflen *= 2; pwbuflen *= 2;
pwtmpbuf = (char *) __alloca (pwbuflen); pwtmpbuf = (char *) __alloca (pwbuflen);
__set_errno (0); __set_errno (save);
} }
# else # else
p = getpwnam (name); p = getpwnam (name);
@@ -726,6 +727,7 @@ glob (pattern, flags, errfunc, pglob)
size_t buflen = sysconf (_SC_GETPW_R_SIZE_MAX); size_t buflen = sysconf (_SC_GETPW_R_SIZE_MAX);
char *pwtmpbuf; char *pwtmpbuf;
struct passwd pwbuf; struct passwd pwbuf;
int save = errno;
if (buflen == -1) if (buflen == -1)
/* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. Try a /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. Try a
@@ -740,8 +742,9 @@ glob (pattern, flags, errfunc, pglob)
p = NULL; p = NULL;
break; break;
} }
pwtmpbuf = __alloca (buflen *= 2); buflen *= 2;
__set_errno (0); pwtmpbuf = __alloca (buflen);
__set_errno (save);
} }
# else # else
p = getpwnam (user_name); p = getpwnam (user_name);