From ec1a71249ac0114261946de7803ddc1812d8221a Mon Sep 17 00:00:00 2001 From: rlar Date: Sat, 15 Sep 2012 14:58:39 +0200 Subject: [PATCH] fix ownership of `cp_promptstring' and `cp_program' --- src/frontend/options.c | 2 +- src/frontend/variable.c | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/frontend/options.c b/src/frontend/options.c index 46959a464..c66f247d1 100644 --- a/src/frontend/options.c +++ b/src/frontend/options.c @@ -259,7 +259,7 @@ cp_usrset(struct variable *var, bool isset) cp_program); #endif } else if (eq(var->va_name, "program")) { - cp_program = copy(var->va_string); + cp_program = var->va_string; } else if (eq(var->va_name, "rawfile")) { ft_rawfile = copy(var->va_string); } else if (eq(var->va_name, "acct")) { diff --git a/src/frontend/variable.c b/src/frontend/variable.c index b668661c8..1882e479c 100644 --- a/src/frontend/variable.c +++ b/src/frontend/variable.c @@ -176,7 +176,7 @@ cp_vset(char *varname, enum cp_types type, void *value) else if (eq(varname, "echo")) /*CDHW*/ cp_echo = TRUE; /*CDHW*/ else if (eq(copyvarname, "prompt") && (type == CP_STRING)) - cp_promptstring = copy(v->va_string); + cp_promptstring = v->va_string; else if (eq(copyvarname, "ignoreeof")) cp_ignoreeof = TRUE; else if (eq(copyvarname, "cpdebug")) { @@ -478,15 +478,14 @@ cp_remvar(char *varname) cp_noclobber = FALSE; else if (eq(varname, "echo")) /*CDHW*/ cp_echo = FALSE; /*CDHW*/ - else if (eq(varname, "prompt")) { - /* cp_promptstring = ""; Memory leak here the last allocated reference wil be lost*/ - if(cp_promptstring) - strcpy(cp_promptstring, ""); /*DG avoid memory leak*/ - } + else if (eq(varname, "prompt")) + cp_promptstring = NULL; else if (eq(varname, "cpdebug")) cp_debug = FALSE; else if (eq(varname, "ignoreeof")) cp_ignoreeof = FALSE; + else if (eq(varname, "program")) + cp_program = ""; switch (i = cp_usrset(v, FALSE)) {