projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7a73190
)
netfs, fscache: Prevent Oops in fscache_put_cache()
author
Dan Carpenter
<dan.carpenter@linaro.org>
Fri, 12 Jan 2024 06:59:41 +0000
(09:59 +0300)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Thu, 1 Feb 2024 00:19:01 +0000
(16:19 -0800)
[ Upstream commit
3be0b3ed1d76c6703b9ee482b55f7e01c369cc68
]
This function dereferences "cache" and then checks if it's
IS_ERR_OR_NULL(). Check first, then dereference.
Fixes:
9549332df4ed
("fscache: Implement cache registration")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Link:
https://lore.kernel.org/r/e84bc740-3502-4f16-982a-a40d5676615c@moroto.mountain/
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/fscache/cache.c
patch
|
blob
|
history
diff --git
a/fs/fscache/cache.c
b/fs/fscache/cache.c
index
d645f8b
..
9397ed3
100644
(file)
--- a/
fs/fscache/cache.c
+++ b/
fs/fscache/cache.c
@@
-179,13
+179,14
@@
EXPORT_SYMBOL(fscache_acquire_cache);
void fscache_put_cache(struct fscache_cache *cache,
enum fscache_cache_trace where)
{
- unsigned int debug_id
= cache->debug_id
;
+ unsigned int debug_id;
bool zero;
int ref;
if (IS_ERR_OR_NULL(cache))
return;
+ debug_id = cache->debug_id;
zero = __refcount_dec_and_test(&cache->ref, &ref);
trace_fscache_cache(debug_id, ref - 1, where);