Messages in this thread Patch in this message | | | From | Sergey Senozhatsky <> | Subject | [RFC][PATCH 2/5] mm/mempool: allow NULL `pool' pointer in mempool_destroy() | Date | Tue, 9 Jun 2015 21:04:50 +0900 |
| |
mempool_destroy() does not tolerate a NULL mempool_t pointer argument and performs a NULL-pointer dereference. This requires additional attention and effort from developers/reviewers and forces all mempool_destroy() callers to do a NULL check
if (pool) mempool_destroy(pool);
Or, otherwise, be invalid mempool_destroy() users.
Tweak mempool_destroy() and NULL-check the pointer there.
Proposed by Andrew Morton.
Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Reported-by: Andrew Morton <akpm@linux-foundation.org> LKML-reference: https://lkml.org/lkml/2015/6/8/583 --- mm/mempool.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/mm/mempool.c b/mm/mempool.c index 2cc08de..4c533bc 100644 --- a/mm/mempool.c +++ b/mm/mempool.c @@ -150,6 +150,9 @@ static void *remove_element(mempool_t *pool) */ void mempool_destroy(mempool_t *pool) { + if (unlikely(!pool)) + return; + while (pool->curr_nr) { void *element = remove_element(pool); pool->free(element, pool->pool_data); -- 2.4.3.368.g7974889
| |