net/namespace: Update rtnl_net_dumpid for strict data checking

Update rtnl_net_dumpid for strict data checking. If the flag is set,
the dump request is expected to have an rtgenmsg struct as the header
which has the family as the only element. No data may be appended.

Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David Ahern 2018-10-07 20:16:38 -07:00 committed by David S. Miller
parent 9632d47f6a
commit f80f14c364
1 changed files with 6 additions and 0 deletions

View File

@ -853,6 +853,12 @@ static int rtnl_net_dumpid(struct sk_buff *skb, struct netlink_callback *cb)
.s_idx = cb->args[0],
};
if (cb->strict_check &&
nlmsg_attrlen(cb->nlh, sizeof(struct rtgenmsg))) {
NL_SET_ERR_MSG(cb->extack, "Unknown data in network namespace id dump request");
return -EINVAL;
}
spin_lock_bh(&net->nsid_lock);
idr_for_each(&net->netns_ids, rtnl_net_dumpid_one, &net_cb);
spin_unlock_bh(&net->nsid_lock);