Skip to content

Commit

Permalink
* dir.c (glob_helper): fix memory leak.
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
nobu committed Jan 7, 2004
1 parent d5ffbb2 commit debe048
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
4 changes: 4 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
Wed Jan 7 22:28:12 2004 Nobuyoshi Nakada <[email protected]>

* dir.c (glob_helper): fix memory leak.

Wed Jan 7 21:15:07 2004 GOTOU Yuuzou <[email protected]>

* sample/webrick/*: new files.
Expand Down
16 changes: 9 additions & 7 deletions dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -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++;
Expand Down Expand Up @@ -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) == '*')
;

Expand Down Expand Up @@ -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);
Expand All @@ -245,7 +246,7 @@ fnmatch(pat, string, flags)
INC_S();
break;

case '\\':
case '\\':
if (escape && pat[1]
#if defined DOSISH
&& strchr("*?[\\", pat[1])
Expand All @@ -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);
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit debe048

Please sign in to comment.