summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2022-03-16 11:39:48 +0300
committerJason Gunthorpe <jgg@nvidia.com>2022-03-18 15:40:54 -0300
commit87e0eacb176f9500c2063d140c0a1d7fa51ab8a5 (patch)
treeca1be05ebaec1584c1bb63405614b6ad8a73a2ed
parent2e11a5e459c1c4f1d27430d2707ec7ef77f371ca (diff)
downloadlinux-stable-87e0eacb176f9500c2063d140c0a1d7fa51ab8a5.tar.gz
linux-stable-87e0eacb176f9500c2063d140c0a1d7fa51ab8a5.tar.bz2
linux-stable-87e0eacb176f9500c2063d140c0a1d7fa51ab8a5.zip
RDMA/nldev: Prevent underflow in nldev_stat_set_counter_dynamic_doit()
This code checks "index" for an upper bound but it does not check for negatives. Change the type to unsigned to prevent underflows. Fixes: 3c3c1f141639 ("RDMA/nldev: Allow optional-counter status configuration through RDMA netlink") Link: https://lore.kernel.org/r/20220316083948.GC30941@kili Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
-rw-r--r--drivers/infiniband/core/nldev.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/core/nldev.c b/drivers/infiniband/core/nldev.c
index f5aacaf7fb8e..ca24ce34da76 100644
--- a/drivers/infiniband/core/nldev.c
+++ b/drivers/infiniband/core/nldev.c
@@ -1951,9 +1951,10 @@ static int nldev_stat_set_counter_dynamic_doit(struct nlattr *tb[],
u32 port)
{
struct rdma_hw_stats *stats;
- int rem, i, index, ret = 0;
struct nlattr *entry_attr;
unsigned long *target;
+ int rem, i, ret = 0;
+ u32 index;
stats = ib_get_hw_stats_port(device, port);
if (!stats)