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

Reply via email to