2023-10-09 15:37:59

by Boris Ostrovsky

[permalink] [raw]
Subject: Re: Linux 4.14.324

On Wed, Aug 30, 2023 at 05:02:37PM +0200, Greg Kroah-Hartman wrote:
> I'm announcing the release of the 4.14.324 kernel.
>
> All users of the 4.14 kernel series must upgrade.
>
> The updated 4.14.y git tree can be found at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.14.y
> and can be browsed at the normal kernel.org git web browser:
> https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
>
...
>
> Ido Schimmel (1):
> rtnetlink: Reject negative ifindexes in RTM_NEWLINK


The above commit (69197b2 rtnetlink: Reject negative ifindexes in RTM_NEWLINK)
appears to has been applied icorrectly, causing some regressions (like attaching
a VF to a running guest). The change needs to be made in rtnl_newlink(), not
rtnl_setlink().

I didn't check all other branches but at least 5.4 looks OK.

I believe 69197b2 needs to be reverted and instead this applied:

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index a76f3024..f4b98f7 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -2547,9 +2547,12 @@ static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh,
ifname[0] = '\0';

ifm = nlmsg_data(nlh);
- if (ifm->ifi_index > 0)
+ if (ifm->ifi_index > 0) {
dev = __dev_get_by_index(net, ifm->ifi_index);
- else {
+ } else if (ifm->ifi_index < 0) {
+ NL_SET_ERR_MSG(extack, "ifindex can't be negative");
+ return -EINVAL;
+ } else {
if (ifname[0])
dev = __dev_get_by_name(net, ifname);
else



2023-10-09 18:25:05

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: Linux 4.14.324

On Mon, Oct 09, 2023 at 11:36:35AM -0400, Boris Ostrovsky wrote:
> On Wed, Aug 30, 2023 at 05:02:37PM +0200, Greg Kroah-Hartman wrote:
> > I'm announcing the release of the 4.14.324 kernel.
> >
> > All users of the 4.14 kernel series must upgrade.
> >
> > The updated 4.14.y git tree can be found at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.14.y
> > and can be browsed at the normal kernel.org git web browser:
> > https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
> >
> ...
> >
> > Ido Schimmel (1):
> > rtnetlink: Reject negative ifindexes in RTM_NEWLINK
>
>
> The above commit (69197b2 rtnetlink: Reject negative ifindexes in RTM_NEWLINK)
> appears to has been applied icorrectly, causing some regressions (like attaching
> a VF to a running guest). The change needs to be made in rtnl_newlink(), not
> rtnl_setlink().
>
> I didn't check all other branches but at least 5.4 looks OK.
>
> I believe 69197b2 needs to be reverted and instead this applied:
>
> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
> index a76f3024..f4b98f7 100644
> --- a/net/core/rtnetlink.c
> +++ b/net/core/rtnetlink.c
> @@ -2547,9 +2547,12 @@ static int rtnl_newlink(struct sk_buff *skb, struct nlmsghdr *nlh,
> ifname[0] = '\0';
>
> ifm = nlmsg_data(nlh);
> - if (ifm->ifi_index > 0)
> + if (ifm->ifi_index > 0) {
> dev = __dev_get_by_index(net, ifm->ifi_index);
> - else {
> + } else if (ifm->ifi_index < 0) {
> + NL_SET_ERR_MSG(extack, "ifindex can't be negative");
> + return -EINVAL;
> + } else {
> if (ifname[0])
> dev = __dev_get_by_name(net, ifname);
> else
>
>

Ick, good catch! 4.19 also looks wrong, let me go revert the original
and then use this version again instead, many thanks for this!

greg k-h