[PATCH 4/4] lwip: treat zero/invalid IPv4 addresses as unset in init_ifs
Joan Lledó <[email protected]> Sat, 27 Jun 2026 12:08:01 +0200
| Newsgroups | gmane.os.hurd.bugs |
|---|---|
| Message-ID | <[email protected]> |
From: Joan Lledó <[email protected]> When the caller passes INADDR_ANY or INADDR_NONE as the address, reset netmask, peer and gateway to INADDR_NONE too, so the configuration passes ipv4config_is_valid() validation instead of being silently dropped. --- lwip/lwip-util.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lwip/lwip-util.c b/lwip/lwip-util.c index 988e3675..f6f0a631 100644 --- a/lwip/lwip-util.c +++ b/lwip/lwip-util.c @@ -169,6 +169,18 @@ init_ifs (void *arg) if (!in->dev_name[0]) continue; + /* + * The caller is trying to set an invalid address, + * set all fields to empty so it passes the validation + */ + if (in->address.addr == INADDR_ANY || in->address.addr == INADDR_NONE) + { + in->address.addr = INADDR_NONE; + in->netmask.addr = INADDR_NONE; + in->peer.addr = INADDR_NONE; + in->gateway.addr = INADDR_NONE; + } + if (!ipv4config_is_valid (in->address.addr, in->netmask.addr, in->gateway.addr, INADDR_NONE)) continue; -- 2.50.1