diff options
author | Thomas Haller <thaller@redhat.com> | 2018-11-02 15:49:07 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2018-11-13 19:09:34 +0100 |
commit | dfdd4e3bd36057860460578cd8a677b35d15a101 (patch) | |
tree | 859e24704f8c3fdee568fc6796944a6f29d9fdc7 | |
parent | 5ef93c3323ae311e0a8be542fa9a8a12eb490307 (diff) | |
download | NetworkManager-dfdd4e3bd36057860460578cd8a677b35d15a101.tar.gz |
dhcp: always require hwaddr in internal DHCP clint ip6_start()
Note how client_start() in NMDhcpManager already asserts
that we have a MAC address. It's always present, like
for the IPv6 case.
-rw-r--r-- | src/dhcp/nm-dhcp-systemd.c | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/src/dhcp/nm-dhcp-systemd.c b/src/dhcp/nm-dhcp-systemd.c index 28aaf3908a..c33de3accd 100644 --- a/src/dhcp/nm-dhcp-systemd.c +++ b/src/dhcp/nm-dhcp-systemd.c @@ -898,6 +898,9 @@ ip6_start (NMDhcpClient *client, const guint8 *duid_arr; gsize duid_len; GBytes *duid; + const uint8_t *hwaddr_arr; + gsize hwaddr_len; + guint16 arptype; g_return_val_if_fail (!priv->client4, FALSE); g_return_val_if_fail (!priv->client6, FALSE); @@ -941,25 +944,19 @@ ip6_start (NMDhcpClient *client, } hwaddr = nm_dhcp_client_get_hw_addr (client); - if (hwaddr) { - const uint8_t *hwaddr_arr; - gsize hwaddr_len; - guint16 arptype; - - if ( !(hwaddr_arr = g_bytes_get_data (hwaddr, &hwaddr_len)) - || (arptype = get_arp_type (hwaddr_len)) == ARPHRD_NONE) { - nm_utils_error_set_literal (error, NM_UTILS_ERROR_UNKNOWN, "invalid MAC address"); - return FALSE; - } - - r = sd_dhcp6_client_set_mac (sd_client, - hwaddr_arr, - hwaddr_len, - arptype); - if (r < 0) { - nm_utils_error_set_errno (error, r, "failed to set MAC address: %s"); - return FALSE; - } + if ( !hwaddr + || !(hwaddr_arr = g_bytes_get_data (hwaddr, &hwaddr_len)) + || (arptype = get_arp_type (hwaddr_len)) == ARPHRD_NONE) { + nm_utils_error_set_literal (error, NM_UTILS_ERROR_UNKNOWN, "invalid MAC address"); + return FALSE; + } + r = sd_dhcp6_client_set_mac (sd_client, + hwaddr_arr, + hwaddr_len, + arptype); + if (r < 0) { + nm_utils_error_set_errno (error, r, "failed to set MAC address: %s"); + return FALSE; } r = sd_dhcp6_client_set_ifindex (sd_client, |