[PATCH net-next v2 4/6] netconsole: reject a target mixing IPv4 and IPv6 addresses

From: Gustavo Luiz Duarte

Date: Mon Aug 10 2026 - 13:05:36 EST


The local_ip and remote_ip configfs attributes are written independently
and nothing stops a user from mixing ipv4 and ipv6. This leads to an
ipv4 address being zero-extended into an ipv6 header or an ipv6 address
being truncated to its first 4 bytes for an ipv4 header.

The command-line parser already refuses such a mismatch. This adds a
similar check when a dynamic target is being enabled.

Signed-off-by: Gustavo Luiz Duarte <gustavold@xxxxxxxxx>
---
drivers/net/netconsole.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 7fcdff53b3a4..054c39066043 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -475,6 +475,12 @@ static int netcons_netpoll_setup(struct netconsole_target *nt)
return -EDESTADDRREQ;
}

+ if (nt->local_ip.family != AF_UNSPEC &&
+ nt->local_ip.family != nt->remote_ip.family) {
+ np_err(np, "local and remote IP address families differ, aborting\n");
+ return -EINVAL;
+ }
+
rtnl_lock();
if (np->dev_name[0])
ndev = __dev_get_by_name(net, np->dev_name);

--
2.55.0