diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index baa323ca37c4..fd6d2430d40f 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -3560,6 +3560,9 @@ replay: if (ifm->ifi_index > 0) { link_specified = true; dev = __dev_get_by_index(net, ifm->ifi_index); + } else if (ifm->ifi_index < 0) { + NL_SET_ERR_MSG(extack, "ifindex can't be negative"); + return -EINVAL; } else if (tb[IFLA_IFNAME] || tb[IFLA_ALT_IFNAME]) { link_specified = true; dev = rtnl_dev_get(net, tb);