Report information
The Basics
Id:
47353
Status:
new
Priority:
Medium/Medium
Queue:

People
Owner:
Nobody in particular
Cc:
AdminCc:

BugTracker
Version Fixed:
(no value)
Version Found:
(no value)
Versions Affected:
(no value)
Versions Planned:
4.4.2
Priority:
(no value)
Severity:
(no value)
CVSS Score:
(no value)
CVE ID:
(no value)
Component:
(no value)
Area:
(no value)

Dates
Created:Wed, 21 Mar 2018 05:55:56 -0400
Updated:Fri, 08 Jun 2018 15:59:56 -0400
Closed:Not set



This bug tracker is no longer active.

Please go to our Gitlab to submit issues (both feature requests and bug reports) for active projects maintained by Internet Systems Consortium (ISC).

Due to security and confidentiality requirements, full access is limited to the primary maintainers.

From: "Pavel Zhukov" <pzhukov@redhat.com>
Subject: [Patch] get hardware addresses for all interfaces.
Date: Wed, 21 Mar 2018 10:55:52 +0100
To: dhcp-bugs@isc.org
Hello, Seed generation in dhclient.c:832 (at the moment of writing) assumes hardware addresses for all interfaces are properly discovered and filled in into interfaces static variables. But if dhclient is used for IPv6 PD it's not the case because only interfaces used for PD itself is discovered. hw_addr field of others ones are zero'ed (which is the bug by itself). This becomes problem once ppp0 is used for ipv6 prefix delegation (with patch like https://src.fedoraproject.org/rpms/dhcp/blob/master/f/dhcp-PPP.patch) as the result duid of the system changes between restart which leads to network outage because ISP doesn't recognize the client properly. Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=832712 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1163379 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1329210 This patch is probably related to [ISC-Bugs #38144]) and [ISC-Bugs #24249]) diff --git a/common/discover.c b/common/discover.c index 26a78ca..ed01e45 100644 --- a/common/discover.c +++ b/common/discover.c @@ -635,6 +635,8 @@ discover_interfaces(int state) { interface_dereference(&tmp, MDL); tmp = interfaces; /* XXX */ } + if (tmp != NULL) + get_hw_addr(tmp); if (dhcp_interface_discovery_hook) { (*dhcp_interface_discovery_hook)(tmp); -- PAVEL ZHUKOV SOFTWARE ENGINEER, RHCE, RHCVA Red Hat