projects
/
platform
/
kernel
/
linux-amlogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
f9f0a53
)
bcachefs: Fix UAF in __promote_alloc() error path
author
Kent Overstreet
<kent.overstreet@linux.dev>
Wed, 6 Nov 2024 21:40:08 +0000
(16:40 -0500)
committer
Kent Overstreet
<kent.overstreet@linux.dev>
Thu, 7 Nov 2024 21:48:21 +0000
(16:48 -0500)
If we error in data_update_init() after adding to the rhashtable of
outstanding promotes, kfree_rcu() is required.
Reported-by: Reed Riley <reed@riley.engineer>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/io_read.c
patch
|
blob
|
history
diff --git
a/fs/bcachefs/io_read.c
b/fs/bcachefs/io_read.c
index ac6a6fcc2bb8fd679c14d4d383c787fea2017ad5..b3b934a87c6de1962d07e93ac2ff9843729edaee 100644
(file)
--- a/
fs/bcachefs/io_read.c
+++ b/
fs/bcachefs/io_read.c
@@
-262,7
+262,8
@@
err:
bio_free_pages(&(*rbio)->bio);
kfree(*rbio);
*rbio = NULL;
- kfree(op);
+ /* We may have added to the rhashtable and thus need rcu freeing: */
+ kfree_rcu(op, rcu);
bch2_write_ref_put(c, BCH_WRITE_REF_promote);
return ERR_PTR(ret);
}