From 15db0b2d2452a420efd1f29111ea2de739fa6803 Mon Sep 17 00:00:00 2001 From: Lijuan Gao Date: Fri, 3 Jul 2020 15:13:33 +0800 Subject: [PATCH] lkdtm: Correct the size value for WRITE_KERN Correct the value of size, WRITE_KERN will not work as expected if the do_overwritten is less than do_nothing. Change-Id: I2c69c62829cd55f280efd63763316b91691c0620 Signed-off-by: Lijuan Gao --- drivers/misc/lkdtm/perms.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/misc/lkdtm/perms.c b/drivers/misc/lkdtm/perms.c index 2dede2ef658f..07eaef8cec98 100644 --- a/drivers/misc/lkdtm/perms.c +++ b/drivers/misc/lkdtm/perms.c @@ -113,7 +113,12 @@ void lkdtm_WRITE_KERN(void) size_t size; volatile unsigned char *ptr; - size = (unsigned long)do_overwritten - (unsigned long)do_nothing; + if ((unsigned long)do_overwritten < (unsigned long)do_nothing) + size = (unsigned long)do_nothing - + (unsigned long)do_overwritten; + else + size = (unsigned long)do_overwritten - + (unsigned long)do_nothing; ptr = (unsigned char *)do_overwritten; pr_info("attempting bad %zu byte write at %px\n", size, ptr);