bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug #31743] ?= operator doesn't work correctly with 3.82


From: Paul Smith
Subject: Re: [bug #31743] ?= operator doesn't work correctly with 3.82
Date: Tue, 30 Nov 2010 13:17:04 -0500

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);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]