From owner-freebsd-bugs Wed Jan 30 9:20:20 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 9E95637B402 for ; Wed, 30 Jan 2002 09:20:00 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g0UHK0s23152; Wed, 30 Jan 2002 09:20:00 -0800 (PST) (envelope-from gnats) Received: from malkavian.org (malkavian.org [206.136.132.23]) by hub.freebsd.org (Postfix) with ESMTP id 029EE37B405 for ; Wed, 30 Jan 2002 09:12:10 -0800 (PST) Received: (from rbw@localhost) by malkavian.org (8.11.6/8.11.1) id g0UHC4800881; Wed, 30 Jan 2002 12:12:04 -0500 (EST) (envelope-from rbw@myplace.org) Message-Id: <20020130101203.A551@malkavian.org> Date: Wed, 30 Jan 2002 10:12:04 -0700 From: "brian j. peterson" Reply-To: "brian j. peterson" To: FreeBSD-gnats-submit@freebsd.org Cc: "brian j. peterson" Subject: misc/34455: [PATCH] /sbin/dhclient-script overwrites /etc/resolv.conf without any relevant information Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 34455 >Category: misc >Synopsis: [PATCH] /sbin/dhclient-script overwrites /etc/resolv.conf without any relevant information >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Jan 30 09:20:00 PST 2002 >Closed-Date: >Last-Modified: >Originator: "brian j. peterson" >Release: FreeBSD 4.5-PRERELEASE alpha >Organization: >Environment: System: FreeBSD nikita 4.5-PRERELEASE FreeBSD 4.5-PRERELEASE #7: Sun Jan 6 17:14:40 MST 2002 root@nikita:/usr/obj/usr/src/sys/HARLOT alpha >Description: With the following /etc/dhclient.conf, I am not requesting a domain-name or domain-name-servers, but '/sbin/dhclient de0' still overwrites my /etc/resolv.conf. root@nikita% cat /etc/dhclient.conf interface "de0" { send host-name "nikita"; request subnet-mask, broadcast-address, routers; } root@nikita% cat /etc/resolv.conf search root@nikita% Basically, the make_resolv_conf() portion of /sbin/dhclient-conf is overwriting /etc/resolv.conf despite the fact that it has no useful information to write to it. >How-To-Repeat: 1) define a custom /etc/resolv.conf 2) start /sbin/dhclient on an interface configured without any 'domain-name' or 'domain-name-servers' options defined in any 'require' or 'request' statements. 3) observe that /etc/resolv.conf has been overwritten >Fix: Modify the make_resolv_conf() portion of /sbin/dhclient like so: root@nikita% diff -u /sbin/dhclient-script_1.9.2.4 /sbin/dhclient-script_new --- /sbin/dhclient-script_1.9.2.4 Mon Jan 7 17:29:01 2002 +++ /sbin/dhclient-script_new Tue Jan 29 18:54:04 2002 @@ -9,10 +9,12 @@ fi make_resolv_conf() { - echo search $new_domain_name >/etc/resolv.conf - for nameserver in $new_domain_name_servers; do - echo nameserver $nameserver >>/etc/resolv.conf - done + if [ x$new_domain_name != x ]; then + echo search $new_domain_name >/etc/resolv.conf + for nameserver in $new_domain_name_servers; do + echo nameserver $nameserver >>/etc/resolv.conf + done + fi } # Must be used on exit. Invokes the local dhcp client exit hooks, if any. The above diff is based on $FreeBSD: src/contrib/isc-dhcp/client/scripts/freebsd,v 1.9.2.4 2001/03/05 10:09:32 obrien Exp $ but can easily be applied to -CURRENT (v 1.19) and then MFC'd at a later date. >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message