diff -Nru isc-dhcp-4.3.5/debian/changelog isc-dhcp-4.3.5/debian/changelog --- isc-dhcp-4.3.5/debian/changelog 2017-09-14 18:41:06.000000000 -0400 +++ isc-dhcp-4.3.5/debian/changelog 2017-10-12 08:48:06.000000000 -0400 @@ -1,3 +1,10 @@ +isc-dhcp (4.3.5-3ubuntu4) bionic; urgency=medium + + * dhclient-script.linux: handle empty case also when waiting for ipv6 link local DAD. + (LP: #1718568) + + -- Dan Streetman Thu, 12 Oct 2017 08:48:06 -0400 + isc-dhcp (4.3.5-3ubuntu3) bionic; urgency=medium * No-change rebuild against the new SOVERs of bind9 libraries. diff -Nru isc-dhcp-4.3.5/debian/dhclient-script.linux isc-dhcp-4.3.5/debian/dhclient-script.linux --- isc-dhcp-4.3.5/debian/dhclient-script.linux 2017-09-14 18:36:37.000000000 -0400 +++ isc-dhcp-4.3.5/debian/dhclient-script.linux 2017-10-12 08:48:06.000000000 -0400 @@ -165,12 +165,18 @@ error "$dev: checking for link-local addresses failed"; return 1 } + # another note: the output may be empty if the link local tentative addr + # isn't up just yet, so we need to make sure there is at least one 'inet6' + # match before returning success. We need to keep checking for both + # 'tentative' case and default (no inet6 address) case. (LP: #1718568) + # Don't reorder tentative/inet6 - we need to check for tentative first. case " $out " in *\ dadfailed\ *) error "$dev: ipv6 dad failed." return 1;; *\ tentative\ *) :;; - *) return 0;; + *\ inet6\ *) return 0;; + *) :;; esac [ $n -lt $attempts ] || { error "$dev: time out waiting for permanent link-local address"