summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-07 13:28:15 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-01-07 13:28:15 +0000
commitdebe0485f0eae6a2fcedf6326c994a6e8cc60fb8 (patch)
tree4810a20eb8be026083130bed43b39461c1448bad
parentd5ffbb20e80202319957c74e75fbdd628cbda43b (diff)
* dir.c (glob_helper): fix memory leak.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--dir.c16
2 files changed, 13 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 4230660260..9972a73ea3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Jan 7 22:28:12 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * dir.c (glob_helper): fix memory leak.
+
Wed Jan 7 21:15:07 2004 GOTOU Yuuzou <gotoyuzo@notwork.org>
* sample/webrick/*: new files.
diff --git a/dir.c b/dir.c
index 83a4c3cb5d..d084d18a86 100644
--- a/dir.c
+++ b/dir.c
@@ -162,7 +162,7 @@ range(pat, test, flags)
return ok == not ? 0 : ++pat;
else if (escape && *pstart == '\\')
pstart = pend = ++pat;
- Inc(pat);
+ Inc(pat);
if (*pat == '-' && pat[1] != ']') {
if (escape && pat[1] == '\\')
pat++;
@@ -197,13 +197,14 @@ fnmatch(pat, string, flags)
while (c = *pat) {
switch (c) {
- case '?':
+ case '?':
if (!*s || ISDIRSEP(*s) || PERIOD_S())
return FNM_NOMATCH;
INC_S();
++pat;
break;
- case '*':
+
+ case '*':
while ((c = *++pat) == '*')
;
@@ -236,7 +237,7 @@ fnmatch(pat, string, flags)
}
return FNM_NOMATCH;
- case '[':
+ case '[':
if (!*s || ISDIRSEP(*s) || PERIOD_S())
return FNM_NOMATCH;
pat = range(pat+1, s, flags);
@@ -245,7 +246,7 @@ fnmatch(pat, string, flags)
INC_S();
break;
- case '\\':
+ case '\\':
if (escape && pat[1]
#if defined DOSISH
&& strchr("*?[\\", pat[1])
@@ -255,13 +256,13 @@ fnmatch(pat, string, flags)
}
/* FALLTHROUGH */
- default:
+ default:
#if defined DOSISH
if (ISDIRSEP(c) && isdirsep(*s))
;
else
#endif
- if(Compare(pat, s) != 0)
+ if (Compare(pat, s) != 0)
return FNM_NOMATCH;
INC_S();
Inc(pat);
@@ -1129,6 +1130,7 @@ glob_helper(path, sub, separator, flags, func, arg) /* if separator p[-1] is rem
strcpy(buf+n1, link->name);
strcpy(buf+n2, m);
status = glob_helper(buf, buf+n2+1, 1, flags, func, arg);
+ free(buf);
}
tmp = link;
link = link->next;