From 8af9389f87e25aea721071516cf00ed13360ab9c Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Tue, 21 Feb 2006 05:21:19 +0000 Subject: Fix a potential core dump when merging aliases. Might fix bug #15818. Revert intermediate file free code. Suppress some warnings in VMS builds. --- implicit.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'implicit.c') diff --git a/implicit.c b/implicit.c index 054b71a..b8f1054 100644 --- a/implicit.c +++ b/implicit.c @@ -80,19 +80,21 @@ static void free_idep_chain (struct idep *p) { struct idep *n; - struct file *f; for (; p != 0; p = n) { n = p->next; if (p->name) - free (p->name); + { + struct file *f = p->intermediate_file; + + if (f != 0 + && (f->stem < f->name || f->stem > f->name + strlen (f->name))) + free (f->stem); - f = p->intermediate_file; - if (f != 0 - && (f->stem < f->name || f->stem > f->name + strlen (f->name))) - free (f->stem); + free (p->name); + } free (p); } @@ -836,7 +838,7 @@ pattern_search (struct file *file, int archive, f->deps = imf->deps; f->cmds = imf->cmds; - f->stem = xstrdup (imf->stem); + f->stem = imf->stem; f->also_make = imf->also_make; f->is_target = 1; -- cgit v1.2.3