From 9c2be1886b92dd822218a3e2dc2afa7c761cb95d Mon Sep 17 00:00:00 2001 From: Andris Pavenis Date: Thu, 24 Jul 2014 20:57:11 +0300 Subject: [PATCH] Fix memory corruption (use after free) --- read.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/read.c b/read.c index a3ad88e..e973d38 100644 --- a/read.c +++ b/read.c @@ -1811,7 +1811,8 @@ record_target_var (struct nameseq *filenames, char *defn, int len = strlen(v->name); gv = lookup_variable (v->name, len); - if (gv && (gv->origin == o_env_override || gv->origin == o_command)) + if (gv && (gv != v) && + (gv->origin == o_env_override || gv->origin == o_command)) { if (v->value != 0) free (v->value); -- 1.9.3