diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | sysdeps/generic/glob.c | 17 |
2 files changed, 17 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index 137f99abb2..9d54fb4fc0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2002-02-10 Ulrich Drepper <drepper@redhat.com> + * sysdeps/generic/glob.c (glob): Explicitly set gl_pathc to zero + after globfree() calls. + * elf/dl-deps.c (struct openaux_args): Add open_mode element. (openaux): Pass open_mode as new last argument to _dl_map_object. (_dl_map_object_deps): Add new argument open_mode. Initialize diff --git a/sysdeps/generic/glob.c b/sysdeps/generic/glob.c index 20cf0a2f5b..af409c54b2 100644 --- a/sysdeps/generic/glob.c +++ b/sysdeps/generic/glob.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1999, 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1991-1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -419,7 +419,10 @@ glob (pattern, flags, errfunc, pglob) if (onealt == NULL) { if (!(flags & GLOB_APPEND)) - globfree (pglob); + { + globfree (pglob); + pglob->gl_pathc = 0; + } return GLOB_NOSPACE; } #endif @@ -501,7 +504,10 @@ glob (pattern, flags, errfunc, pglob) free (onealt); #endif if (!(flags & GLOB_APPEND)) - globfree (pglob); + { + globfree (pglob); + pglob->gl_pathc = 0; + } return result; } @@ -933,6 +939,7 @@ glob (pattern, flags, errfunc, pglob) { globfree (&dirs); globfree (pglob); + pglob->gl_pathc = 0; return status; } @@ -943,6 +950,7 @@ glob (pattern, flags, errfunc, pglob) { globfree (&dirs); globfree (pglob); + pglob->gl_pathc = 0; return GLOB_NOSPACE; } } @@ -975,6 +983,7 @@ glob (pattern, flags, errfunc, pglob) { globfree (&dirs); globfree (pglob); + pglob->gl_pathc = 0; return GLOB_NOSPACE; } @@ -1009,6 +1018,7 @@ glob (pattern, flags, errfunc, pglob) pglob->gl_pathc - old_pathc)) { globfree (pglob); + pglob->gl_pathc = 0; return GLOB_NOSPACE; } } @@ -1035,6 +1045,7 @@ glob (pattern, flags, errfunc, pglob) if (new == NULL) { globfree (pglob); + pglob->gl_pathc = 0; return GLOB_NOSPACE; } strcpy (&new[len - 2], "/"); |