diff options
author | Jakub Jelinek <jakub@redhat.com> | 2006-10-02 19:02:41 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2006-10-02 19:02:41 +0000 |
commit | 16d1b47b4f3f9ae13535ea7a2c02bd207c069d5c (patch) | |
tree | 975d67b5fe35279f3f4834b4c345b18b927a57b9 /posix | |
parent | af47bc499af76c844b28d9ca912ed81f2a353708 (diff) | |
download | glibc-16d1b47b4f3f9ae13535ea7a2c02bd207c069d5c.tar.gz glibc-16d1b47b4f3f9ae13535ea7a2c02bd207c069d5c.tar.xz glibc-16d1b47b4f3f9ae13535ea7a2c02bd207c069d5c.zip |
Updated to fedora-glibc-20061002T1858 cvs/fedora-glibc-2_5-2 cvs/fedora-2_5-base
Diffstat (limited to 'posix')
-rw-r--r-- | posix/glob.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/posix/glob.c b/posix/glob.c index 630d54063a..0079a15a92 100644 --- a/posix/glob.c +++ b/posix/glob.c @@ -1287,8 +1287,15 @@ glob_in_dir (const char *pattern, const char *directory, int flags, for (size_t i = 0; i < cur; ++i) free (names->name[i]); names = names->next; + /* NB: we will not leak memory here if we exit without + freeing the current block assigned to OLD. At least + the very first block is always allocated on the stack + and this is the block assigned to OLD here. */ if (names == NULL) - break; + { + assert (old == &init_names); + break; + } cur = names->count; if (old == names_alloca) names_alloca = names; @@ -1306,8 +1313,15 @@ glob_in_dir (const char *pattern, const char *directory, int flags, new_gl_pathv[pglob->gl_offs + pglob->gl_pathc++] = names->name[i]; names = names->next; + /* NB: we will not leak memory here if we exit without + freeing the current block assigned to OLD. At least + the very first block is always allocated on the stack + and this is the block assigned to OLD here. */ if (names == NULL) - break; + { + assert (old == &init_names); + break; + } cur = names->count; if (old == names_alloca) names_alloca = names; |