X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=kernel%2Fdrivers%2Fmisc%2Flkdtm.c;fp=kernel%2Fdrivers%2Fmisc%2Flkdtm.c;h=11fdadc68e53e57722b4d58892fdf2c644beba34;hb=e09b41010ba33a20a87472ee821fa407a5b8da36;hp=b5abe34120b8a9c2169e6bb8513e88bd8d49051c;hpb=f93b97fd65072de626c074dbe099a1fff05ce060;p=kvmfornfv.git diff --git a/kernel/drivers/misc/lkdtm.c b/kernel/drivers/misc/lkdtm.c index b5abe3412..11fdadc68 100644 --- a/kernel/drivers/misc/lkdtm.c +++ b/kernel/drivers/misc/lkdtm.c @@ -472,7 +472,7 @@ static void lkdtm_do_action(enum ctype which) break; } case CT_ACCESS_USERSPACE: { - unsigned long user_addr, tmp; + unsigned long user_addr, tmp = 0; unsigned long *ptr; user_addr = vm_mmap(NULL, 0, PAGE_SIZE, @@ -483,6 +483,12 @@ static void lkdtm_do_action(enum ctype which) return; } + if (copy_to_user((void __user *)user_addr, &tmp, sizeof(tmp))) { + pr_warn("copy_to_user failed\n"); + vm_munmap(user_addr, PAGE_SIZE); + return; + } + ptr = (unsigned long *)user_addr; pr_info("attempting bad read at %p\n", ptr);