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