summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/dir.c b/dir.c
index 7a188cacbb..b31096f515 100644
--- a/dir.c
+++ b/dir.c
@@ -731,7 +731,7 @@ glob_helper(path, sub, flags, func, arg)
struct d_link {
char *path;
struct d_link *next;
- } *tmp, *link = 0;
+ } *tmp, *link, **tail = &link;
base = extract_path(path, p);
if (path == p) dir = ".";
@@ -808,12 +808,13 @@ glob_helper(path, sub, flags, func, arg)
}
tmp = ALLOC(struct d_link);
tmp->path = buf;
- tmp->next = link;
- link = tmp;
+ *tail = tmp;
+ tail = &tmp->next;
}
}
closedir(dirp);
finalize:
+ *tail = 0;
free(base);
free(magic);
if (link) {