瀏覽代碼

lkdtm: Missing kmalloc check

Handling a possible memory allocation failure.

Signed-off-by: Vasyl Gomonovych <gomonovych@gmail.com>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Vasyl Gomonovych 7 年之前
父節點
當前提交
02543a4e96
共有 1 個文件被更改,包括 4 次插入0 次删除
  1. 4 0
      drivers/misc/lkdtm_heap.c

+ 4 - 0
drivers/misc/lkdtm_heap.c

@@ -16,6 +16,8 @@ void lkdtm_OVERWRITE_ALLOCATION(void)
 {
 {
 	size_t len = 1020;
 	size_t len = 1020;
 	u32 *data = kmalloc(len, GFP_KERNEL);
 	u32 *data = kmalloc(len, GFP_KERNEL);
+	if (!data)
+		return;
 
 
 	data[1024 / sizeof(u32)] = 0x12345678;
 	data[1024 / sizeof(u32)] = 0x12345678;
 	kfree(data);
 	kfree(data);
@@ -33,6 +35,8 @@ void lkdtm_WRITE_AFTER_FREE(void)
 	size_t offset = (len / sizeof(*base)) / 2;
 	size_t offset = (len / sizeof(*base)) / 2;
 
 
 	base = kmalloc(len, GFP_KERNEL);
 	base = kmalloc(len, GFP_KERNEL);
+	if (!base)
+		return;
 	pr_info("Allocated memory %p-%p\n", base, &base[offset * 2]);
 	pr_info("Allocated memory %p-%p\n", base, &base[offset * 2]);
 	pr_info("Attempting bad write to freed memory at %p\n",
 	pr_info("Attempting bad write to freed memory at %p\n",
 		&base[offset]);
 		&base[offset]);