On Tue, 2010-11-23 at 21:10 +0000, Paul D. Smith wrote: > Update of bug #31743 (project make): > > Triage Status: None => Verified > > _______________________________________________________ > > Follow-up Comment #1: > > Actually it doesn't work (always) in 3.81; there's a memory corruption bug > here that shows up sometimes. But I do see your behavior with 3.82 and that's > not right either. I'll look at it. > > _______________________________________________________ > > Reply to this item at: > > <http://savannah.gnu.org/bugs/?31743> > > _______________________________________________ > Message sent via/by Savannah > http://savannah.gnu.org/ >
I fixed this and checked the fix into CVS. Unfortunately due to the Savannah compromise the website is down for a while so I can't update the bug. But, you can check out the new CVS code. Or, if you prefer, you can apply the fix yourself (it's simple): --- read.c 6 Nov 2010 21:56:24 -0000 1.195 +++ read.c 30 Nov 2010 14:48:53 -0000 1.196 @@ -1802,7 +1802,8 @@ int len = strlen(v->name); gv = lookup_variable (v->name, len); - if (gv && (gv->origin == o_env_override || gv->origin == o_command)) + if (gv && v != gv + && (gv->origin == o_env_override || gv->origin == o_command)) { if (v->value != 0) free (v->value); _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make