diff options
-rw-r--r-- | usr.sbin/sysinstall/config.c | 7 | ||||
-rw-r--r-- | usr.sbin/sysinstall/dmenu.c | 12 |
2 files changed, 14 insertions, 5 deletions
diff --git a/usr.sbin/sysinstall/config.c b/usr.sbin/sysinstall/config.c index 4871089..baca42a 100644 --- a/usr.sbin/sysinstall/config.c +++ b/usr.sbin/sysinstall/config.c @@ -871,13 +871,18 @@ configNFSServer(dialogMenuItem *self) int configRpcBind(dialogMenuItem *self) { + char *tmp, *tmp2; int retval = 0; int doupdate = 1; if (self != NULL) { retval = dmenuToggleVariable(self); - if (strcmp(variable_get(self->data), "YES") != 0) + tmp = strdup(self->data); + if ((tmp2 = index(tmp, '=')) != NULL) + *tmp2 = '\0'; + if (strcmp(variable_get(tmp), "YES") != 0) doupdate = 0; + free(tmp); } if (doupdate && strcmp(variable_get(VAR_RPCBIND_ENABLE), "YES") != 0) { diff --git a/usr.sbin/sysinstall/dmenu.c b/usr.sbin/sysinstall/dmenu.c index a197188..1aef667 100644 --- a/usr.sbin/sysinstall/dmenu.c +++ b/usr.sbin/sysinstall/dmenu.c @@ -169,19 +169,23 @@ dmenuToggleVariable(dialogMenuItem *tmp) int dmenuISetVariable(dialogMenuItem *tmp) { - char *ans, *var; + char *ans, *p, *var; - if (!(var = (char *)tmp->data)) { + if (!(var = strdup((char *)tmp->data))) { msgConfirm("Incorrect data field for `%s'!", tmp->title); return DITEM_FAILURE; } + if ((p = index(var, '=')) != NULL) + *p = '\0'; ans = msgGetInput(variable_get(var), tmp->title, 1); - if (!ans) + if (!ans) { + free(var); return DITEM_FAILURE; - else if (!*ans) + } else if (!*ans) variable_unset(var); else variable_set2(var, ans, *var != '_'); + free(var); return DITEM_SUCCESS; } |