summaryrefslogtreecommitdiffstats
path: root/lib/genalloc.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2015-02-13 23:36:47 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2015-02-14 06:21:36 +0100
commit310ee9e8f370f8fd7a76856726aea88839bb0f8f (patch)
treee1cb008a16a701566c81f89ad4d68cc714b34381 /lib/genalloc.c
parentlib/string.c: improve strrchr() (diff)
downloadlinux-310ee9e8f370f8fd7a76856726aea88839bb0f8f.tar.xz
linux-310ee9e8f370f8fd7a76856726aea88839bb0f8f.zip
lib/genalloc.c: check result of devres_alloc()
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>
Diffstat (limited to 'lib/genalloc.c')
-rw-r--r--lib/genalloc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/genalloc.c b/lib/genalloc.c
index 0fe1cbe87700..d214866eeea2 100644
--- a/lib/genalloc.c
+++ b/lib/genalloc.c
@@ -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) {