Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Apr 2008 09:52:43 +0200 (CEST)
From:      Peter Much <pmc@citylink.dinoex.sub.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   bin/122519: ppp provides deficient DNS info
Message-ID:  <200804070752.m377qh74069403@gate.oper.dinoex.org>
Resent-Message-ID: <200804070820.m378K1JU035245@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help


>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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804070752.m377qh74069403>