aio: nullify aio->ring_pages after freeing it
authorSasha Levin <sasha.levin@oracle.com>
Tue, 19 Nov 2013 22:33:03 +0000 (17:33 -0500)
committerBenjamin LaHaise <bcrl@kvack.org>
Tue, 19 Nov 2013 22:40:48 +0000 (17:40 -0500)
After freeing ring_pages we leave it as is causing a dangling pointer. This
has already caused an issue so to help catching any issues in the future
NULL it out.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
fs/aio.c

index 63135331cec27b3801375835165726077f61cc35..ad460d78d6c5d9e3c967d9d2560e1847542c3c57 100644 (file)
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -196,8 +196,10 @@ static void aio_free_ring(struct kioctx *ctx)
 
        put_aio_ring_file(ctx);
 
-       if (ctx->ring_pages && ctx->ring_pages != ctx->internal_pages)
+       if (ctx->ring_pages && ctx->ring_pages != ctx->internal_pages) {
                kfree(ctx->ring_pages);
+               ctx->ring_pages = NULL;
+       }
 }
 
 static int aio_ring_mmap(struct file *file, struct vm_area_struct *vma)