mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
RDMA/mlx5: Fix memory leak in GET_DATA_DIRECT_SYSFS_PATH handler
The UVERBS_HANDLER(MLX5_IB_METHOD_GET_DATA_DIRECT_SYSFS_PATH) function
allocates memory for the device path using kobject_get_path(). If the
length of the device path exceeds the output buffer length, the function
returns -ENOSPC but does not free the allocated memory, resulting in a
memory leak.
Add a kfree() call to the error path to ensure the allocated memory is
properly freed.
Compile tested only. Issue found using a prototype static analysis tool
and code review.
Fixes: ec7ad65309 ("RDMA/mlx5: Introduce GET_DATA_DIRECT_SYSFS_PATH ioctl")
Signed-off-by: Zilin Guan <zilin@seu.edu.cn>
Link: https://patch.msgid.link/20260126074801.627898-1-zilin@seu.edu.cn
Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
1956f0a74c
commit
9b9d253908
|
|
@ -195,7 +195,7 @@ static int UVERBS_HANDLER(MLX5_IB_METHOD_GET_DATA_DIRECT_SYSFS_PATH)(
|
|||
int out_len = uverbs_attr_get_len(attrs,
|
||||
MLX5_IB_ATTR_GET_DATA_DIRECT_SYSFS_PATH);
|
||||
u32 dev_path_len;
|
||||
char *dev_path;
|
||||
char *dev_path = NULL;
|
||||
int ret;
|
||||
|
||||
c = to_mucontext(ib_uverbs_get_ucontext(attrs));
|
||||
|
|
@ -223,9 +223,9 @@ static int UVERBS_HANDLER(MLX5_IB_METHOD_GET_DATA_DIRECT_SYSFS_PATH)(
|
|||
|
||||
ret = uverbs_copy_to(attrs, MLX5_IB_ATTR_GET_DATA_DIRECT_SYSFS_PATH, dev_path,
|
||||
dev_path_len);
|
||||
kfree(dev_path);
|
||||
|
||||
end:
|
||||
kfree(dev_path);
|
||||
mutex_unlock(&dev->data_direct_lock);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user