]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: ip_gre: Accept IFLA_INFO_DATA-less configuration
authorPetr Machata <petrm@mellanox.com>
Mon, 16 Mar 2020 17:53:00 +0000 (19:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Apr 2020 13:28:13 +0000 (15:28 +0200)
[ Upstream commit 32ca98feab8c9076c89c0697c5a85e46fece809d ]

The fix referenced below causes a crash when an ERSPAN tunnel is created
without passing IFLA_INFO_DATA. Fix by validating passed-in data in the
same way as ipgre does.

Fixes: e1f8f78ffe98 ("net: ip_gre: Separate ERSPAN newlink / changelink callbacks")
Reported-by: syzbot+1b4ebf4dae4e510dd219@syzkaller.appspotmail.com
Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv4/ip_gre.c

index 26dfcf605ec5cdf27660efa6261b5c74cb8af625..ffcb5983107dbcee9209e7a366d9cef03ffed742 100644 (file)
@@ -1241,6 +1241,8 @@ static int erspan_netlink_parms(struct net_device *dev,
        err = ipgre_netlink_parms(dev, data, tb, parms, fwmark);
        if (err)
                return err;
+       if (!data)
+               return 0;
 
        if (data[IFLA_GRE_ERSPAN_VER]) {
                t->erspan_ver = nla_get_u8(data[IFLA_GRE_ERSPAN_VER]);