]> git.baikalelectronics.ru Git - kernel.git/commitdiff
vxlan: fix dereference of nexthop group in nexthop update path
authorRoopa Prabhu <roopa@cumulusnetworks.com>
Sun, 31 May 2020 05:17:20 +0000 (22:17 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 1 Jun 2020 19:06:26 +0000 (12:06 -0700)
fix dereference of nexthop group in fdb nexthop group
update validation path.

Fixes: 7b74b4517f67 ("vxlan: ecmp support for mac fdb entries")
Reported-by: Ido Schimmel <idosch@idosch.org>
Suggested-by: Ido Schimmel <idosch@idosch.org>
Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c

index d5906b41cdaeaad0b1b5e6f4579664ad1b13af6d..5bb448ae6c9c456988d4f30d5bc02ca5e9754621 100644 (file)
@@ -881,13 +881,13 @@ static int vxlan_fdb_nh_update(struct vxlan_dev *vxlan, struct vxlan_fdb *fdb,
                        goto err_inval;
                }
 
-               if (!nh->is_group || !nh->nh_grp->mpath) {
+               nhg = rtnl_dereference(nh->nh_grp);
+               if (!nh->is_group || !nhg->mpath) {
                        NL_SET_ERR_MSG(extack, "Nexthop is not a multipath group");
                        goto err_inval;
                }
 
                /* check nexthop group family */
-               nhg = rtnl_dereference(nh->nh_grp);
                switch (vxlan->default_dst.remote_ip.sa.sa_family) {
                case AF_INET:
                        if (!nhg->has_v4) {