summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2015-02-13 14:36:47 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2015-02-13 21:21:36 -0800
commit310ee9e8f370f8fd7a76856726aea88839bb0f8f (patch)
treee1cb008a16a701566c81f89ad4d68cc714b34381
parent8da53d4595a53fb9a3380dd4d1c9bc24c7c9aab8 (diff)
downloadlinux-stable-310ee9e8f370f8fd7a76856726aea88839bb0f8f.tar.gz
linux-stable-310ee9e8f370f8fd7a76856726aea88839bb0f8f.tar.bz2
linux-stable-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>
-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) {