aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/lkdtm.c
diff options
context:
space:
mode:
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>2016-04-05 13:11:05 -0400
committerKees Cook <keescook@chromium.org>2016-04-06 19:22:23 -0400
commit50fbd977733d1cbafe75baf4b50424434dcfea8c (patch)
tree57e50b2197e26e3c93bbefdf072a472bc826f52e /drivers/misc/lkdtm.c
parentc4004b02f8e5b9ce357a0bb1641756cc86962664 (diff)
lkdtm: fix memory leak of val
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>
Diffstat (limited to 'drivers/misc/lkdtm.c')
-rw-r--r--drivers/misc/lkdtm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/misc/lkdtm.c b/drivers/misc/lkdtm.c
index 5f1a36b8fbb0..2f0b02248761 100644
--- a/drivers/misc/lkdtm.c
+++ b/drivers/misc/lkdtm.c
@@ -498,12 +498,13 @@ static void lkdtm_do_action(enum ctype which)
498 } 498 }
499 case CT_READ_BUDDY_AFTER_FREE: { 499 case CT_READ_BUDDY_AFTER_FREE: {
500 unsigned long p = __get_free_page(GFP_KERNEL); 500 unsigned long p = __get_free_page(GFP_KERNEL);
501 int saw, *val = kmalloc(1024, GFP_KERNEL); 501 int saw, *val;
502 int *base; 502 int *base;
503 503
504 if (!p) 504 if (!p)
505 break; 505 break;
506 506
507 val = kmalloc(1024, GFP_KERNEL);
507 if (!val) 508 if (!val)
508 break; 509 break;
509 510