diff options
Diffstat (limited to 'pppd/options.c')
-rw-r--r-- | pppd/options.c | 5 |
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; |