mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
bcache: fix cache_set_flush() NULL pointer dereference on OOM
commit f8b11260a4 upstream.
When bch_cache_set_alloc() fails to kzalloc the cache_set, the
asyncronous closure handling tries to dereference a cache_set that
hadn't yet been allocated inside of cache_set_flush() which is called
by __cache_set_unregister() during cleanup. This appears to happen only
during an OOM condition on bcache_register.
Signed-off-by: Eric Wheeler <bcache@linux.ewheeler.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b58e781068
commit
ca75edc440
@@ -1373,6 +1373,9 @@ static void cache_set_flush(struct closure *cl)
|
||||
struct btree *b;
|
||||
unsigned i;
|
||||
|
||||
if (!c)
|
||||
closure_return(cl);
|
||||
|
||||
bch_cache_accounting_destroy(&c->accounting);
|
||||
|
||||
kobject_put(&c->internal);
|
||||
|
||||
Reference in New Issue
Block a user