summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Src/glob.c6
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 7593e90a8..c9976ab8c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2008-11-06 Clint Adams <clint@zsh.org>
+ * 26014: Src/glob.c: don't allocate and leak a patprog if it's not
+ going to be used.
+
* 26013: Src/Modules/tcp.c: don't ztrdup the other buffer returned
by inet_ntoa. cf. 25987.
diff --git a/Src/glob.c b/Src/glob.c
index f8d7b5ad0..ce7de1ed6 100644
--- a/Src/glob.c
+++ b/Src/glob.c
@@ -693,11 +693,13 @@ parsecomplist(char *instr)
if (*(str = instr) == Inpar && !skipparens(Inpar, Outpar, (char **)&str) &&
*str == Pound && isset(EXTENDEDGLOB) && str[-2] == '/') {
instr++;
- if (!(p1 = patcompile(instr, compflags, &instr)))
- return NULL;
+
if (instr[0] == '/' && instr[1] == Outpar && instr[2] == Pound) {
int pdflag = 0;
+ if (!(p1 = patcompile(instr, compflags, &instr)))
+ return NULL;
+
instr += 3;
if (*instr == Pound) {
pdflag = 1;