mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-23 08:37:33 -04:00
net: hsr: reject unresolved interlink ifindex
In hsr_newlink(), a provided but invalid IFLA_HSR_INTERLINK attribute was silently ignored if __dev_get_by_index() returned NULL. This leads to incorrect RedBox topology creation without notifying the user. Fix this by returning -EINVAL and an extack message when the interlink attribute is present but cannot be resolved. Reviewed-by: Felix Maurer <fmaurer@redhat.com> Signed-off-by: Luka Gejak <luka.gejak@linux.dev> Reviewed-by: Fernando Fernandez Mancera <fmancera@suse.de> Link: https://patch.msgid.link/20260513182657.20346-3-luka.gejak@linux.dev Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
bbfb198394
commit
85ee970039
@@ -76,9 +76,14 @@ static int hsr_newlink(struct net_device *dev,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (data[IFLA_HSR_INTERLINK])
|
||||
if (data[IFLA_HSR_INTERLINK]) {
|
||||
interlink = __dev_get_by_index(link_net,
|
||||
nla_get_u32(data[IFLA_HSR_INTERLINK]));
|
||||
if (!interlink) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "Interlink does not exist");
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
if (interlink && interlink == link[0]) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "Interlink and Slave1 are the same");
|
||||
|
||||
Reference in New Issue
Block a user