summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-09-08 19:17:20 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2017-09-08 19:17:20 +0200
commit015a9e66b9b8c1f28097ed09bf9350708e26249a (patch)
tree76a42209cd19527a917ee1d64ebcaf9a5410ad3b /drivers/infiniband/core
parentRDAM/netlink: Fix out-of-bound access while checking message validity (diff)
downloadlinux-015a9e66b9b8c1f28097ed09bf9350708e26249a.tar.xz
linux-015a9e66b9b8c1f28097ed09bf9350708e26249a.zip
RDMA/netlink: clean up message validity array initializer
The fix in the parent made me look at that function, and react to how illogical and illegible the array initializer was. Use named array indexes to make it clearer what is going on, and make the initializer not depend silently on the exact index numbers. [ The initializer now also shows an odd inconsistency in the naming: note the IWCM vs IWPM.. - Linus ] Cc: Leon Romanovsky <leonro@mellanox.com> Cc: Doug Ledford <dledford@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r--drivers/infiniband/core/netlink.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/infiniband/core/netlink.c b/drivers/infiniband/core/netlink.c
index b66b6d06144b..b12e58787c3d 100644
--- a/drivers/infiniband/core/netlink.c
+++ b/drivers/infiniband/core/netlink.c
@@ -58,12 +58,11 @@ EXPORT_SYMBOL(rdma_nl_chk_listeners);
static bool is_nl_msg_valid(unsigned int type, unsigned int op)
{
static const unsigned int max_num_ops[RDMA_NL_NUM_CLIENTS] = {
- 0,
- RDMA_NL_RDMA_CM_NUM_OPS,
- RDMA_NL_IWPM_NUM_OPS,
- 0,
- RDMA_NL_LS_NUM_OPS,
- RDMA_NLDEV_NUM_OPS };
+ [RDMA_NL_RDMA_CM] = RDMA_NL_RDMA_CM_NUM_OPS,
+ [RDMA_NL_IWCM] = RDMA_NL_IWPM_NUM_OPS,
+ [RDMA_NL_LS] = RDMA_NL_LS_NUM_OPS,
+ [RDMA_NL_NLDEV] = RDMA_NLDEV_NUM_OPS,
+ };
/*
* This BUILD_BUG_ON is intended to catch addition of new