mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-22 13:33:56 +03:00
dhcp: fix sd_dhcp_client_set_client_id() for infiniband addresses
Infiniband addresses are 20 bytes (INFINIBAND_ALEN), but only the last
8 bytes are suitable for putting into the client-id.
This bug had no effect for networkd, because sd_dhcp_client_set_client_id()
has only one caller which always uses ARPHRD_ETHER type.
I was unable to find good references for why this is correct ([1]). Fedora/RHEL
has patches for ISC dhclient that also only use the last 8 bytes ([2], [3]).
RFC 4390 (Dynamic Host Configuration Protocol (DHCP) over InfiniBand) [4] does
not discuss the content of the client-id either.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1658057#c29
[2] https://bugzilla.redhat.com/show_bug.cgi?id=660681
[3] 3ccf3c8d81/f/dhcp-lpf-ib.patch
[4] https://tools.ietf.org/html/rfc4390
This commit is contained in:
parent
fcfb1f775e
commit
b9d8071458
@ -308,7 +308,9 @@ int sd_dhcp_client_set_client_id(
|
||||
break;
|
||||
|
||||
case ARPHRD_INFINIBAND:
|
||||
if (data_len != INFINIBAND_ALEN)
|
||||
/* Infiniband addresses are 20 bytes (INFINIBAND_ALEN), however only
|
||||
* the last 8 bytes are stable and suitable for putting into the client-id. */
|
||||
if (data_len != 8)
|
||||
return -EINVAL;
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user