lkdtm: fix memory leak of val
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Tue, 5 Apr 2016 17:11:05 +0000 (22:41 +0530)
committerKees Cook <keescook@chromium.org>
Wed, 6 Apr 2016 23:22:23 +0000 (16:22 -0700)
This case is supposed to read from a page after after it is freed, but
it missed freeing val if we are not able to get a free page.

Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: Kees Cook <keescook@chromium.org>
drivers/misc/lkdtm.c

index 5f1a36b..2f0b022 100644 (file)
@@ -498,12 +498,13 @@ static void lkdtm_do_action(enum ctype which)
        }
        case CT_READ_BUDDY_AFTER_FREE: {
                unsigned long p = __get_free_page(GFP_KERNEL);
-               int saw, *val = kmalloc(1024, GFP_KERNEL);
+               int saw, *val;
                int *base;
 
                if (!p)
                        break;
 
+               val = kmalloc(1024, GFP_KERNEL);
                if (!val)
                        break;