bin/122519: ppp provides deficient DNS info

Peter Much pmc at citylink.dinoex.sub.org
Mon Apr 7 08:20:01 UTC 2008


>Number:         122519
>Category:       bin
>Synopsis:       ppp provides deficient DNS info
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Apr 07 08:20:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Peter Much
>Release:        FreeBSD 6.3-RELEASE-p1 i386
>Organization:
n/a
>Environment:
System: FreeBSD edge.oper.dinoex.org 6.3-RELEASE-p1 FreeBSD 6.3-RELEASE-p1 #9: Sat Apr 5 05:37:18 CEST 2008 root@:/usr/src/sys/i386/compile/E1R63V1 i386

nothing special needed

>Description:

ppp, in server-side operation, is supposed to provide 2 DNS
adresses to the calling client. And it should fetch these out of
/etc/resolv.conf.
In fact, it provides only one of these: the second one.

This could even be considered serious because, depending on their
connectivity, it may cost people real money to persistently connect
their second, fall-back nameserver, and they may not notice it too soon.

>How-To-Repeat:

 * configure at least 2 nameservers in your resolv.conf
 * configure your ppp to log IPCP negotiations and to "accept dns" 
   (that means actually that the ppp will accept requests for
   nameserver adresses).
 * bring up a connection and let the connecting peer ask for
   DNS info.
 * read the logfile.

>Fix:

--- usr.sbin/ppp/ipcp.c.orig    2008-04-07 08:44:44.000000000 +0200
+++ usr.sbin/ppp/ipcp.c 2008-04-07 08:47:19.000000000 +0200
@@ -247,7 +247,7 @@
 
           ch = *ncp;
           *ncp = '\0';
-          if (n < 2 && inet_aton(cp, ipcp->ns.dns))
+          if (n < 2 && inet_aton(cp, (ipcp->ns.dns)+n))
             n++;
           *ncp = ch;
 
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list