X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fipcp.c;h=128c204d64e0c96b2b8379dabb53b4a23718fdc9;hb=e672f7597fd88d86acdaf504baedd19e68e6de65;hp=1ed4c07796706e3a9e9ce63817e75f2b9600fdb2;hpb=731ef5f88822fdccf7894a28c906bf6bf8fa134c;p=ppp.git diff --git a/pppd/ipcp.c b/pppd/ipcp.c index 1ed4c07..128c204 100644 --- a/pppd/ipcp.c +++ b/pppd/ipcp.c @@ -40,7 +40,7 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#define RCSID "$Id: ipcp.c,v 1.63 2003/06/29 10:06:14 paulus Exp $" +#define RCSID "$Id: ipcp.c,v 1.65 2004/01/13 03:59:06 paulus Exp $" /* * TODO: @@ -1098,10 +1098,10 @@ ipcp_nakci(f, p, len) * If they want to negotiate about IP addresses, we comply. * If they want us to ask for compression, we refuse. */ - while (len > CILEN_VOID) { + while (len >= CILEN_VOID) { GETCHAR(citype, p); GETCHAR(cilen, p); - if( (len -= cilen) < 0 ) + if ( cilen < CILEN_VOID || (len -= cilen) < 0 ) goto bad; next = p + cilen - 2; @@ -1687,12 +1687,12 @@ ipcp_up(f) script_setenv("IPLOCAL", ip_ntoa(go->ouraddr), 0); script_setenv("IPREMOTE", ip_ntoa(ho->hisaddr), 1); + if (go->dnsaddr[0]) + script_setenv("DNS1", ip_ntoa(go->dnsaddr[0]), 0); + if (go->dnsaddr[1]) + script_setenv("DNS2", ip_ntoa(go->dnsaddr[1]), 0); if (usepeerdns && (go->dnsaddr[0] || go->dnsaddr[1])) { script_setenv("USEPEERDNS", "1", 0); - if (go->dnsaddr[0]) - script_setenv("DNS1", ip_ntoa(go->dnsaddr[0]), 0); - if (go->dnsaddr[1]) - script_setenv("DNS2", ip_ntoa(go->dnsaddr[1]), 0); create_resolv(go->dnsaddr[0], go->dnsaddr[1]); }