network: add missing else in dhcp_lease_load (#34927)

Fixes: 3fd6708cde (network: Serialize DNR servers)

---

Fixes: #34926
This commit is contained in:
Lennart Poettering
2024-10-30 08:39:15 +01:00
committed by GitHub
4 changed files with 18 additions and 1 deletions
+5
View File
@@ -1358,6 +1358,11 @@ static int ndisc_option_parse_encrypted_dns(Set **options, size_t offset, size_t
r = ndisc_get_dns_name(opt + off, ilen, &res.auth_name);
if (r < 0)
return r;
r = dns_name_is_valid_ldh(res.auth_name);
if (r < 0)
return r;
if (!r)
return -EBADMSG;
if (dns_name_is_root(res.auth_name))
return -EBADMSG;
off += ilen;
+7 -1
View File
@@ -628,6 +628,11 @@ static int lease_parse_dnr(const uint8_t *option, size_t len, sd_dns_resolver **
r = lease_parse_dns_name(option + offset, ilen, &res.auth_name);
if (r < 0)
return r;
r = dns_name_is_valid_ldh(res.auth_name);
if (r < 0)
return r;
if (!r)
return -EBADMSG;
if (dns_name_is_root(res.auth_name))
return -EBADMSG;
offset += ilen;
@@ -1551,7 +1556,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) {
+6
View File
@@ -8,6 +8,7 @@
#include "alloc-util.h"
#include "dhcp6-internal.h"
#include "dhcp6-lease-internal.h"
#include "dns-domain.h"
#include "network-common.h"
#include "sort-util.h"
#include "strv.h"
@@ -465,6 +466,11 @@ static int dhcp6_lease_add_dnr(sd_dhcp6_lease *lease, const uint8_t *optval, siz
r = dhcp6_option_parse_domainname(optval + offset, ilen, &res.auth_name);
if (r < 0)
return r;
r = dns_name_is_valid_ldh(res.auth_name);
if (r < 0)
return r;
if (!r)
return -EBADMSG;
offset += ilen;
/* RFC9463 § 3.1.6: adn only mode */
Binary file not shown.