diff mbox series

[net] net: ip_gre: Accept IFLA_INFO_DATA-less configuration

Message ID b7bc71aab99588a5b2c36c0338639fc5543f0f3a.1584381176.git.petrm@mellanox.com
State Accepted
Delegated to: David Miller
Headers show
Series [net] net: ip_gre: Accept IFLA_INFO_DATA-less configuration | expand

Commit Message

Petr Machata March 16, 2020, 5:53 p.m. UTC
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>
---
 net/ipv4/ip_gre.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

David Miller March 17, 2020, 12:21 a.m. UTC | #1
From: Petr Machata <petrm@mellanox.com>
Date: Mon, 16 Mar 2020 19:53:00 +0200

> 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>

Applied and queued up for -stable, thanks.
diff mbox series

Patch

diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 7765c65fc7d2..029b24eeafba 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -1168,6 +1168,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]);