From 398d03a1a236aa8d160197366d3a9168260dce82 Mon Sep 17 00:00:00 2001 From: Paul Donald Date: Fri, 10 Oct 2025 13:44:28 +0200 Subject: [PATCH] config: cap dhcpv6_pd_min_len to max instead of only logging error MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Paul Donald Link: https://github.com/openwrt/odhcpd/pull/225 Signed-off-by: Álvaro Fernández Rojas --- src/config.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/config.c b/src/config.c index 6792b54..2d8ff01 100644 --- a/src/config.c +++ b/src/config.c @@ -1303,11 +1303,12 @@ int config_parse_interface(void *data, size_t len, const char *name, bool overwr if ((c = tb[IFACE_ATTR_DHCPV6_PD_MIN_LEN])) { uint32_t pd_min_len = blobmsg_get_u32(c); - if (pd_min_len != 0 && pd_min_len <= PD_MIN_LEN_MAX) - iface->dhcpv6_pd_min_len = pd_min_len; - else - syslog(LOG_ERR, "Invalid %s value configured for interface '%s'", - iface_attrs[IFACE_ATTR_DHCPV6_PD_MIN_LEN].name, iface->name); + if (pd_min_len > PD_MIN_LEN_MAX) + iface->dhcpv6_pd_min_len = PD_MIN_LEN_MAX; + iface->dhcpv6_pd_min_len = pd_min_len; + if (pd_min_len >= PD_MIN_LEN_MAX) + syslog(LOG_WARNING, "Clamped invalid %s value configured for interface '%s' to %d", + iface_attrs[IFACE_ATTR_DHCPV6_PD_MIN_LEN].name, iface->name, iface->dhcpv6_pd_min_len); } if ((c = tb[IFACE_ATTR_DHCPV6_NA])) -- 2.30.2