aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/regex
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2014-12-19 06:48:47 +0000
committerXin LI <delphij@FreeBSD.org>2014-12-19 06:48:47 +0000
commitcfbebadc603ad85459bd6f189c192d3ad44f6b43 (patch)
tree4c979a24e37d4c480cbdc76e75790ee1ce9bc4ec /lib/libc/regex
parentbbd01a41002e32b1198e5a73d3d439c7bd8818e5 (diff)
downloadsrc-cfbebadc603ad85459bd6f189c192d3ad44f6b43.tar.gz
src-cfbebadc603ad85459bd6f189c192d3ad44f6b43.zip
Plug a memory leak.
Obtained from: DragonFlyBSD (commit 5119ece) MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=275930
Diffstat (limited to 'lib/libc/regex')
-rw-r--r--lib/libc/regex/regcomp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/libc/regex/regcomp.c b/lib/libc/regex/regcomp.c
index a01bb95931bf..2ecb88c54a93 100644
--- a/lib/libc/regex/regcomp.c
+++ b/lib/libc/regex/regcomp.c
@@ -1716,8 +1716,10 @@ computematchjumps(struct parse *p, struct re_guts *g)
}
g->matchjump = (int*) malloc(g->mlen * sizeof(unsigned int));
- if (g->matchjump == NULL) /* Not a fatal error */
+ if (g->matchjump == NULL) { /* Not a fatal error */
+ free(pmatches);
return;
+ }
/* Set maximum possible jump for each character in the pattern */
for (mindex = 0; mindex < g->mlen; mindex++)