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 <[email protected]>
---
 lib/genalloc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/genalloc.c b/lib/genalloc.c
index 2e65d206b01c..094f8bee021f 100644
--- a/lib/genalloc.c
+++ b/lib/genalloc.c
@@ -587,6 +587,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) {
-- 
2.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to