Package: ifupdown
Version: 0.6.8+nmu1
Severity: important
Tags: patch
I'm near the final stages of uploading preliminary ISC DHCP 4.1.0 packages to
experimental. In local testing, I've discovered a problem with the way ifup
invokes dhclient.
It's passing a spurious -e to dhclient, which should normally be accompanied by
a VAR=value pair, but is not. This confuses dhclient's option parser, and it
thinks the penultimate argument is the interface name (which is is not) and
falls afoul of internal buffer-overflow checking.
The -e option needs to be removed.
FYI, the ISC DHCP 4.1.0 packages will return to calling the dhclient binary
/sbin/dhclient
-- System Information:
Debian Release: 5.0.2
APT prefers stable
APT policy: (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.26-2-686 (SMP w/1 CPU core)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages ifupdown depends on:
ii libc6 2.7-18 GNU C Library: Shared libraries
ii lsb-base 3.2-20 Linux Standard Base 3.2 init scrip
ii net-tools 1.60-22 The NET-3 networking toolkit
ifupdown recommends no packages.
Versions of packages ifupdown suggests:
ii dhcp3-client 3.1.1-6+lenny2 DHCP client
ii iproute 20080725-2 networking and traffic control too
ii ppp 2.4.4rel-10.1 Point-to-Point Protocol (PPP) - da
-- debconf information excluded
diff -ur ifupdown-0.6.8+nmu1/inet.defn ifupdown-0.6.8+nmu2/inet.defn
--- ifupdown-0.6.8+nmu1/inet.defn 2006-09-28 10:10:29.000000000 -0700
+++ ifupdown-0.6.8+nmu2/inet.defn 2009-08-30 18:36:14.061268950 -0700
@@ -77,7 +77,7 @@
[[ifconfig %iface% hw %hwaddress%]]
dhclient3 -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \
if (execable("/sbin/dhclient3"))
- dhclient -e -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \
+ dhclient -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \
elsif (execable("/sbin/dhclient"))
pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]] \
elsif (execable("/sbin/pump") && mylinuxver() >= mylinux(2,1,100))