X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Foptions.c;h=0285b1bb8d3c629dbc14de2ae4af6a49353c039b;hb=76307d910b81acb709143b2fd82e1ca724feb24c;hp=a85239abb0c523908e2e51d69d2b296b79754fb2;hpb=3d05bed7431b9c44c4beca0049b5c0e910abf2a1;p=ppp.git diff --git a/pppd/options.c b/pppd/options.c index a85239a..0285b1b 100644 --- a/pppd/options.c +++ b/pppd/options.c @@ -40,7 +40,7 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#define RCSID "$Id: options.c,v 1.100 2006/06/18 11:26:00 paulus Exp $" +#define RCSID "$Id: options.c,v 1.101 2008/06/03 12:07:13 paulus Exp $" #include #include @@ -771,17 +771,20 @@ process_option(opt, cmd, argv) if (!(*parser)(argv)) return 0; if (opt->flags & OPT_A2LIST) { - struct option_value *ovp, **pp; + struct option_value *ovp, *pp; ovp = malloc(sizeof(*ovp) + strlen(*argv)); if (ovp != 0) { strcpy(ovp->value, *argv); ovp->source = option_source; ovp->next = NULL; - pp = (struct option_value **) &opt->addr2; - while (*pp != 0) - pp = &(*pp)->next; - *pp = ovp; + if (opt->addr2 == NULL) { + opt->addr2 = ovp; + } else { + for (pp = opt->addr2; pp->next != NULL; pp = pp->next) + ; + pp->next = ovp; + } } } break;