aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeon Romanovsky <leonro@mellanox.com>2017-10-31 14:09:54 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-10-31 15:12:55 -0400
commit287683d027a3ff83feb6c7044430c79881664ecf (patch)
treea047276f244bba9f13d37362c493e8438de80e69
parent5f479447d983111c039f1d6d958553c1ad1b2ff1 (diff)
RDMA/nldev: Enforce device index check for port callback
IB device index is nldev's handler and it should be checked always. Fixes: c3f66f7b0052 ("RDMA/netlink: Implement nldev port doit callback") Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Acked-by: Doug Ledford <dledford@redhat.com> [ Applying directly, since Doug fried his SSD's and is rebuilding - Linus ] Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/infiniband/core/nldev.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/infiniband/core/nldev.c b/drivers/infiniband/core/nldev.c
index 3ba24c428c3b..2fae850a3eff 100644
--- a/drivers/infiniband/core/nldev.c
+++ b/drivers/infiniband/core/nldev.c
@@ -214,7 +214,9 @@ static int nldev_port_get_doit(struct sk_buff *skb, struct nlmsghdr *nlh,
214 214
215 err = nlmsg_parse(nlh, 0, tb, RDMA_NLDEV_ATTR_MAX - 1, 215 err = nlmsg_parse(nlh, 0, tb, RDMA_NLDEV_ATTR_MAX - 1,
216 nldev_policy, extack); 216 nldev_policy, extack);
217 if (err || !tb[RDMA_NLDEV_ATTR_PORT_INDEX]) 217 if (err ||
218 !tb[RDMA_NLDEV_ATTR_DEV_INDEX] ||
219 !tb[RDMA_NLDEV_ATTR_PORT_INDEX])
218 return -EINVAL; 220 return -EINVAL;
219 221
220 index = nla_get_u32(tb[RDMA_NLDEV_ATTR_DEV_INDEX]); 222 index = nla_get_u32(tb[RDMA_NLDEV_ATTR_DEV_INDEX]);