summaryrefslogtreecommitdiff
path: root/implicit.c
diff options
context:
space:
mode:
Diffstat (limited to 'implicit.c')
-rw-r--r--implicit.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/implicit.c b/implicit.c
index 943ce20..6defa7a 100644
--- a/implicit.c
+++ b/implicit.c
@@ -513,7 +513,14 @@ pattern_search (file, archive, depth, recursions)
if (recursions == 0)
{
dep->name = 0;
- dep->file = enter_file (s);
+ dep->file = lookup_file (s);
+ if (dep->file == 0)
+ /* enter_file consumes S's storage. */
+ dep->file = enter_file (s);
+ else
+ /* A copy of S is already allocated in DEP->file->name.
+ So we can free S. */
+ free (s);
}
else
{