summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pppd/options.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/pppd/options.c b/pppd/options.c
index e9042d1..f66b765 100644
--- a/pppd/options.c
+++ b/pppd/options.c
@@ -776,10 +776,13 @@ process_option(opt, cmd, argv)
if (opt->flags & OPT_STATIC) {
strlcpy((char *)(opt->addr), *argv, opt->upper_limit);
} else {
+ char **optptr = (char **)(opt->addr);
sv = strdup(*argv);
if (sv == NULL)
novm("option argument");
- *(char **)(opt->addr) = sv;
+ if (*optptr)
+ free(*optptr);
+ *optptr = sv;
}
break;