summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorXiang Yang <xiangyang3@huawei.com>2023-08-04 10:25:25 +0800
committerLeon Romanovsky <leon@kernel.org>2023-08-07 16:49:59 +0300
commit26b7d1a27167e7adf75b150755e05d2bc123ce55 (patch)
treea3874c51ff290d9dcdbe805cbc1b8bc997c776fd /drivers/infiniband
parent9e03dbea2b0634b21a45946b4f8097e0dc86ebe1 (diff)
downloadlinux-stable-26b7d1a27167e7adf75b150755e05d2bc123ce55.tar.gz
linux-stable-26b7d1a27167e7adf75b150755e05d2bc123ce55.tar.bz2
linux-stable-26b7d1a27167e7adf75b150755e05d2bc123ce55.zip
IB/uverbs: Fix an potential error pointer dereference
smatch reports the warning below: drivers/infiniband/core/uverbs_std_types_counters.c:110 ib_uverbs_handler_UVERBS_METHOD_COUNTERS_READ() error: 'uattr' dereferencing possible ERR_PTR() The return value of uattr maybe ERR_PTR(-ENOENT), fix this by checking the value of uattr before using it. Fixes: ebb6796bd397 ("IB/uverbs: Add read counters support") Signed-off-by: Xiang Yang <xiangyang3@huawei.com> Link: https://lore.kernel.org/r/20230804022525.1916766-1-xiangyang3@huawei.com Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/core/uverbs_std_types_counters.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/core/uverbs_std_types_counters.c b/drivers/infiniband/core/uverbs_std_types_counters.c
index 999da9c79866..381aa5797641 100644
--- a/drivers/infiniband/core/uverbs_std_types_counters.c
+++ b/drivers/infiniband/core/uverbs_std_types_counters.c
@@ -107,6 +107,8 @@ static int UVERBS_HANDLER(UVERBS_METHOD_COUNTERS_READ)(
return ret;
uattr = uverbs_attr_get(attrs, UVERBS_ATTR_READ_COUNTERS_BUFF);
+ if (IS_ERR(uattr))
+ return PTR_ERR(uattr);
read_attr.ncounters = uattr->ptr_attr.len / sizeof(u64);
read_attr.counters_buff = uverbs_zalloc(
attrs, array_size(read_attr.ncounters, sizeof(u64)));