odhcpd: update to Git HEAD (2026-06-04)
b3e65ef700e6 config: add dhcpv6_relay_servers
e432dd62c288 dhcpv6: relay to dhcpv6_relay_server server(s)
ed38cffa927d dhcpv6: fix out-of-bounds read in self-loop detection memcmp
ee0a11f40fa4 dhcpv6: bound nested-relay recursion to HOP_COUNT_LIMIT
d89caa59c005 dhcpv6: reject undersized encapsulated DHCPv4 messages in 4o6 path
db034cfd5eab dhcpv4: honor Pad/End option encoding when iterating options
a6fe4633bb69 ubus: drop spurious ntohl() of DHCPv4 lease IAID
19bf3b73580b dhcpv6-ia: avoid undefined shifts in assign_pd()
a212daeace27 netlink: avoid 32-bit-wide shift when computing /0 IPv4 netmask
374d8174207d dhcpv4: never return NULL from dhcpv4_msg_to_string()
0eade3d4b7a3 ndp: enforce RFC4861 ยง7.1.1 hop-limit and ICMP-code checks on NS
cc04882b3fac dhcpv6: validate minimum length in relay_client_request()
a14884ea7d01 config: guard captive_portal_uri parsing against strdup() failure
7c834a54ae6d dhcpv4: copy ifname into arpreq without reading past the source
2b1ade346f1d statefiles: skip dn_expand() when no search domain is configured
fa270221504c dhcpv6: avoid unaligned uint16_t reads in ORO option parsing
f3743a862b36 config: invert ipv6_pxe_from_uci() return value
3e1dd3b16c9a dhcpv6-pxe: free previous default entry on replacement
78aa06a30da8 statefiles: clean up tmpfile error path
f3fdcf4d3fe2 dhcpv6: validate length and alignment when reading CLIENT_ARCH option
f2275efc72a8 dhcpv6-ia: validate IA_NA/IA_PD option size before reading header
461043731085 config: bound DNR 'mandatory' SvcParam key count
d119e1abc35f router: restore upstream DNS/MTU between relayed RAs
60f488192d5d router: keep RA DNS option lengths within the uint8 length field
c2f94ee5c8e7 dhcpv4: pass &dest.sin_addr to inet_ntop() when logging
5b1e3befb0b2 dhcpv6: validate rewritten RELAY_MSG length in update_nested_message()
1782f3f2aad2 dhcpv6-ia: signal buffer-full from build_ia() IA_ADDR branch
Link: https://github.com/openwrt/openwrt/pull/23651
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>