summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2018-11-02 15:49:07 +0100
committerThomas Haller <thaller@redhat.com>2018-11-13 19:09:34 +0100
commitdfdd4e3bd36057860460578cd8a677b35d15a101 (patch)
tree859e24704f8c3fdee568fc6796944a6f29d9fdc7
parent5ef93c3323ae311e0a8be542fa9a8a12eb490307 (diff)
downloadNetworkManager-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.c35
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,