Commit 7e1b9521 authored by Colin Ian King's avatar Colin Ian King Committed by Mike Snitzer

dm cache: handle kmalloc failure allocating background_tracker struct

Currently there is no kmalloc failure check on the allocation of
the background_tracker struct in btracker_create(), and so a NULL return
will lead to a NULL pointer dereference.  Add a NULL check.

Detected by CoverityScan, CID#1416587 ("Dereference null return value")

Fixes: b29d4986 ("dm cache: significant rework to leverage dm-bio-prison-v2")
Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent 13840d38
...@@ -33,6 +33,11 @@ struct background_tracker *btracker_create(unsigned max_work) ...@@ -33,6 +33,11 @@ struct background_tracker *btracker_create(unsigned max_work)
{ {
struct background_tracker *b = kmalloc(sizeof(*b), GFP_KERNEL); struct background_tracker *b = kmalloc(sizeof(*b), GFP_KERNEL);
if (!b) {
DMERR("couldn't create background_tracker");
return NULL;
}
b->max_work = max_work; b->max_work = max_work;
atomic_set(&b->pending_promotes, 0); atomic_set(&b->pending_promotes, 0);
atomic_set(&b->pending_writebacks, 0); atomic_set(&b->pending_writebacks, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment