From: Paul Donald Date: Tue, 9 Apr 2024 03:04:05 +0000 (+0200) Subject: router: limit prefix preferred_lt to valid_lt in accordance with RFC4861 X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=e164414aa18454d08bfd3d0480acfa0d5754034d;p=project%2Fodhcpd.git router: limit prefix preferred_lt to valid_lt in accordance with RFC4861 Follow-up fix for bc9d317f2921 ("dhcpv6-ia: fix invalid preferred lifetime"). https://www.rfc-editor.org/rfc/rfc4861#page-44 Fixes: bc9d317f2921 ("dhcpv6-ia: fix invalid preferred lifetime") Signed-off-by: Paul Donald Reviewed-by: Daniel Golle [ fix comment format and improve commit title ] Signed-off-by: Christian Marangi --- diff --git a/src/router.c b/src/router.c index 6eba161..b69feb3 100644 --- a/src/router.c +++ b/src/router.c @@ -603,6 +603,15 @@ static int send_router_advert(struct interface *iface, const struct in6_addr *fr valid_lt = iface->dhcp_leasetime; } + if (preferred_lt > valid_lt) { + /* + * RFC4861 § 6.2.1 + * This value [AdvPreferredLifetime] MUST NOT be larger than + * AdvValidLifetime. + */ + preferred_lt = valid_lt; + } + if (minvalid > valid_lt) minvalid = valid_lt;