lib/genalloc.c: check result of devres_alloc()
authorJan Kara <jack@suse.cz>
Fri, 13 Feb 2015 22:36:47 +0000 (14:36 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 14 Feb 2015 05:21:36 +0000 (21:21 -0800)
devm_gen_pool_create() calls devres_alloc() and dereferences its result
without checking whether devres_alloc() succeeded.  Check for error and
bail out if it happened.

Coverity-id 1016493.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/genalloc.c

index 0fe1cbe8770028f72930e453e9738907e36252c1..d214866eeea2cff341cbe76ec0b09c15b05f6ad2 100644 (file)
@@ -586,6 +586,8 @@ struct gen_pool *devm_gen_pool_create(struct device *dev, int min_alloc_order,
        struct gen_pool **ptr, *pool;
 
        ptr = devres_alloc(devm_gen_pool_release, sizeof(*ptr), GFP_KERNEL);
+       if (!ptr)
+               return NULL;
 
        pool = gen_pool_create(min_alloc_order, nid);
        if (pool) {