mirror of
https://github.com/systemd/systemd.git
synced 2025-01-27 18:04:05 +03:00
dhcp: fix assertion starting DHCP client without MAC address (#10054)
An assertion in dhcp_network_bind_raw_socket() is triggered when starting an sd_dhcp_client without setting a MAC address first. - sd_dhcp_client_start() - client_start() - client_start_delayed() - dhcp_network_bind_raw_socket() In that case, the arp-type and MAC address is still unset. Note that dhcp_network_bind_raw_socket() already checks for a valid arp-type and MAC address below, so we should just gracefully return -EINVAL. Maybe sd_dhcp_client_start() should fail earlier when starting without MAC address. But the failure here will be correctly propagated and the start aborted. Fixes: 76253e73f9c9c24fec755e485516f3b55d0707b4
This commit is contained in:
parent
c6d7a5e9a3
commit
a507737e5c
@ -126,8 +126,6 @@ int dhcp_network_bind_raw_socket(int ifindex, union sockaddr_union *link,
|
|||||||
const uint8_t *bcast_addr = NULL;
|
const uint8_t *bcast_addr = NULL;
|
||||||
uint8_t dhcp_hlen = 0;
|
uint8_t dhcp_hlen = 0;
|
||||||
|
|
||||||
assert_return(mac_addr_len > 0, -EINVAL);
|
|
||||||
|
|
||||||
if (arp_type == ARPHRD_ETHER) {
|
if (arp_type == ARPHRD_ETHER) {
|
||||||
assert_return(mac_addr_len == ETH_ALEN, -EINVAL);
|
assert_return(mac_addr_len == ETH_ALEN, -EINVAL);
|
||||||
memcpy(ð_mac, mac_addr, ETH_ALEN);
|
memcpy(ð_mac, mac_addr, ETH_ALEN);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user