]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
rtnetlink: Move ifm in valid_fdb_dump_legacy to closer to use
authorDavid Ahern <dsahern@gmail.com>
Mon, 8 Oct 2018 20:57:24 +0000 (13:57 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Oct 2018 05:24:33 +0000 (22:24 -0700)
Move setting of local variable ifm to after the message parsing in
valid_fdb_dump_legacy. Avoid potential future use of unchecked variable.

Fixes: 8dfbda19a21b ("rtnetlink: Move input checking for rtnl_fdb_dump to helper")
Reported-by: Christian Brauner <christian@brauner.io>
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/rtnetlink.c

index c894c4af89817a780b7da6e2fbb03a7e0a6f7518..2715f8d215170de9d33f848cc2a6b999171c7042 100644 (file)
@@ -3857,7 +3857,6 @@ static int valid_fdb_dump_legacy(const struct nlmsghdr *nlh,
                                 int *br_idx, int *brport_idx,
                                 struct netlink_ext_ack *extack)
 {
-       struct ifinfomsg *ifm = nlmsg_data(nlh);
        struct nlattr *tb[IFLA_MAX+1];
        int err;
 
@@ -3871,6 +3870,8 @@ static int valid_fdb_dump_legacy(const struct nlmsghdr *nlh,
        if (nlmsg_len(nlh) != sizeof(struct ndmsg) &&
            (nlmsg_len(nlh) != sizeof(struct ndmsg) +
             nla_attr_size(sizeof(u32)))) {
+               struct ifinfomsg *ifm;
+
                err = nlmsg_parse(nlh, sizeof(struct ifinfomsg), tb, IFLA_MAX,
                                  ifla_policy, extack);
                if (err < 0) {
@@ -3880,6 +3881,7 @@ static int valid_fdb_dump_legacy(const struct nlmsghdr *nlh,
                                *br_idx = nla_get_u32(tb[IFLA_MASTER]);
                }
 
+               ifm = nlmsg_data(nlh);
                *brport_idx = ifm->ifi_index;
        }
        return 0;