summaryrefslogtreecommitdiff
path: root/posix/fnmatch_loop.c
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2010-11-12 03:51:28 -0500
committerUlrich Drepper <drepper@gmail.com>2010-11-12 03:51:28 -0500
commit3540d66b669af54900b2e4bfc0ab82960e84a471 (patch)
tree2798b4dfa450db317e823ab8af0c2cdb2f340fa2 /posix/fnmatch_loop.c
parent13b695749acf88139a2ce1ed2c949e0e64300a9b (diff)
Fix memory leak in fnmatch
Diffstat (limited to 'posix/fnmatch_loop.c')
-rw-r--r--posix/fnmatch_loop.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index c8e52a6b4d..6b0224ea2c 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -1114,18 +1114,16 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
int malloced = ! __libc_use_alloca (alloca_used + slen); \
if (__builtin_expect (malloced, 0)) \
{ \
- newp = alloca_account (slen, alloca_used); \
- any_malloced = 1; \
- } \
- else \
- { \
newp = malloc (slen); \
if (newp == NULL) \
{ \
retval = -2; \
goto out; \
} \
+ any_malloced = 1; \
} \
+ else \
+ newp = alloca_account (slen, alloca_used); \
newp->next = NULL; \
newp->malloced = malloced; \
*((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0'); \