[Top][All Lists]
[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);