From a0c781a8d7594a444c97cf2c8723cfe0aeca0074 Mon Sep 17 00:00:00 2001 From: jkh Date: Wed, 11 Jun 1997 08:41:10 +0000 Subject: YAMF22 - Bugs Of Evil in variable handling and rc.conf editing. PR#: 3218 [partial] --- usr.sbin/sade/variable.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'usr.sbin/sade/variable.c') diff --git a/usr.sbin/sade/variable.c b/usr.sbin/sade/variable.c index 4bd2e78..0c579d6 100644 --- a/usr.sbin/sade/variable.c +++ b/usr.sbin/sade/variable.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: variable.c,v 1.17 1997/02/22 14:12:38 peter Exp $ + * $Id: variable.c,v 1.11.2.5 1997/06/11 08:39:27 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -111,16 +111,15 @@ variable_unset(char *var) Variable *vp; char name[512], *cp; - unsetenv(var); - if ((cp = index(var, '=')) != NULL) { - sstrncpy(name, cp, cp - var); - var = string_skipwhite(string_prune(name)); - } - + if ((cp = index(var, '=')) != NULL) + sstrncpy(name, var, cp - var); + else + SAFE_STRCPY(name, var); + unsetenv(name); /* Now search to see if it's in our list, if we have one.. */ if (!VarHead) return; - else if (!VarHead->next && !strcmp(VarHead->name, var)) { + else if (!VarHead->next && !strcmp(VarHead->name, name)) { safe_free(VarHead->name); safe_free(VarHead->value); free(VarHead); @@ -128,12 +127,12 @@ variable_unset(char *var) } else { for (vp = VarHead; vp; vp = vp->next) { - if (!strcmp(vp->name, var)) { + if (!strcmp(vp->name, name)) { Variable *save = vp->next; + safe_free(vp->name); + safe_free(vp->value); *vp = *save; - safe_free(save->name); - safe_free(save->value); safe_free(save); break; } -- cgit v1.1