blob: 8a7b6a59229207f80c023676ec565747d07a4e13 [file] [log] [blame]
diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c
index e5a1fdcd54..007ee8013d 100644
--- a/src/libsystemd-network/sd-dhcp-client.c
+++ b/src/libsystemd-network/sd-dhcp-client.c
@@ -1581,6 +1581,10 @@ static int client_handle_ack(sd_dhcp_client *client, DHCPMessage *ack, size_t le
r = dhcp_option_parse(ack, len, dhcp_lease_parse_options, lease, &error_message);
if (r == DHCP_NAK) {
+ if (client->lease && client->lease->server_address != lease->server_address) {
+ log_dhcp_client(client, "NAK from unexpected server, ignoring: %s", strna(error_message));
+ return -ENOMSG;
+ }
log_dhcp_client(client, "NAK: %s", strna(error_message));
return -EADDRNOTAVAIL;
}