2022-08-31 07:18:54

by Jiasheng Jiang

[permalink] [raw]
Subject: [PATCH] lkdtm: Add checks after calling kmalloc and vmalloc

As the potential failure of the memory allocation,
it should be better to check the return value after
calling kmalloc and vmalloc and skip the execute_location
if fails.

Fixes: cc33c537c12f ("lkdtm: add "EXEC_*" triggers")
Signed-off-by: Jiasheng Jiang <[email protected]>
---
drivers/misc/lkdtm/perms.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/lkdtm/perms.c b/drivers/misc/lkdtm/perms.c
index b93404d65650..9ba927d74973 100644
--- a/drivers/misc/lkdtm/perms.c
+++ b/drivers/misc/lkdtm/perms.c
@@ -180,14 +180,16 @@ static void lkdtm_EXEC_STACK(void)
static void lkdtm_EXEC_KMALLOC(void)
{
u32 *kmalloc_area = kmalloc(EXEC_SIZE, GFP_KERNEL);
- execute_location(kmalloc_area, CODE_WRITE);
+ if (kmalloc_area)
+ execute_location(kmalloc_area, CODE_WRITE);
kfree(kmalloc_area);
}

static void lkdtm_EXEC_VMALLOC(void)
{
u32 *vmalloc_area = vmalloc(EXEC_SIZE);
- execute_location(vmalloc_area, CODE_WRITE);
+ if (vmalloc_area)
+ execute_location(vmalloc_area, CODE_WRITE);
vfree(vmalloc_area);
}

--
2.25.1