mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
nfp: Check resource mutex allocation
nfp_cpp_resource_find() allocates a CPP mutex handle for the matching
resource-table entry and then reports success. nfp_resource_try_acquire()
immediately passes that handle to nfp_cpp_mutex_trylock().
However, nfp_cpp_mutex_alloc() returns NULL on failure. If that happens
for a matching table entry, the resource lookup still returns success and
the following trylock dereferences a NULL mutex pointer while opening the
resource.
nfp_resource_acquire() already treats failure to allocate the table mutex
as -ENOMEM. Do the same for the resource mutex and fail the lookup before
publishing the rest of the resource handle.
This issue was found by a static analysis checker and confirmed by
manual source review.
Fixes: f01a216157 ("nfp: add support for resources")
Signed-off-by: Ruoyu Wang <ruoyuw560@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260708143408.3168425-1-ruoyuw560@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
6f884eb87a
commit
a61b4db34a
|
|
@ -96,6 +96,9 @@ static int nfp_cpp_resource_find(struct nfp_cpp *cpp, struct nfp_resource *res)
|
|||
res->mutex =
|
||||
nfp_cpp_mutex_alloc(cpp,
|
||||
NFP_RESOURCE_TBL_TARGET, addr, key);
|
||||
if (!res->mutex)
|
||||
return -ENOMEM;
|
||||
|
||||
res->cpp_id = NFP_CPP_ID(entry.region.cpp_target,
|
||||
entry.region.cpp_action,
|
||||
entry.region.cpp_token);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user