diff --git a/src/libsystemd-network/sd-dhcp-lease.c b/src/libsystemd-network/sd-dhcp-lease.c index 1c0cd6829b..6b2d810645 100644 --- a/src/libsystemd-network/sd-dhcp-lease.c +++ b/src/libsystemd-network/sd-dhcp-lease.c @@ -1551,7 +1551,8 @@ int dhcp_lease_load(sd_dhcp_lease **ret, const char *lease_file) { r = deserialize_dnr(&lease->dnr, dnr); if (r < 0) log_debug_errno(r, "Failed to deserialize DNR servers %s, ignoring: %m", dnr); - lease->n_dnr = r; + else + lease->n_dnr = r; } if (ntp) { diff --git a/test/fuzz/fuzz-dhcp-client/dnr_invalid b/test/fuzz/fuzz-dhcp-client/dnr_invalid new file mode 100644 index 0000000000..a988fba046 Binary files /dev/null and b/test/fuzz/fuzz-dhcp-client/dnr_invalid differ