Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* posix/glob.c (glob_in_dir): Add some comments and asserts to
	explain why there are no leaks.
  • Loading branch information
Ulrich Drepper committed Sep 30, 2006
1 parent 690c394 commit f01e406
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 2 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
@@ -1,3 +1,8 @@
2006-09-30 Ulrich Drepper <drepper@redhat.com>

* posix/glob.c (glob_in_dir): Add some comments and asserts to
explain why there are no leaks.

2006-09-29 Ulrich Drepper <drepper@redhat.com>

* libio/wmemstream.c: Include <wchar.h>.
Expand Down
1 change: 1 addition & 0 deletions libio/bug-wmemstream1.c
@@ -1,5 +1,6 @@
#include <stdio.h>
#include <string.h>
#include <wchar.h>


static int
Expand Down
2 changes: 2 additions & 0 deletions libio/tst-wmemstream1.c
@@ -1,3 +1,5 @@
#include <wchar.h>

#define CHAR_T wchar_t
#define W(o) L##o
#define OPEN_MEMSTREAM open_wmemstream
Expand Down
2 changes: 2 additions & 0 deletions libio/tst-wmemstream2.c
@@ -1,3 +1,5 @@
#include <wchar.h>

#define CHAR_T wchar_t
#define W(o) L##o
#define OPEN_MEMSTREAM open_wmemstream
Expand Down
1 change: 1 addition & 0 deletions libio/wmemstream.c
Expand Up @@ -20,6 +20,7 @@
#include "strfile.h"
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>


struct _IO_FILE_wmemstream
Expand Down
18 changes: 16 additions & 2 deletions posix/glob.c
Expand Up @@ -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;
Expand All @@ -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;
Expand Down

0 comments on commit f01e406

Please sign in to comment.