|
@@ -22,6 +22,7 @@
|
|
|
#include <linux/string.h>
|
|
|
#include <linux/types.h>
|
|
|
#include <linux/kasan.h>
|
|
|
+#include <linux/module.h>
|
|
|
|
|
|
#include <asm/sections.h>
|
|
|
|
|
@@ -85,9 +86,11 @@ static void print_error_description(struct kasan_access_info *info)
|
|
|
|
|
|
static inline bool kernel_or_module_addr(const void *addr)
|
|
|
{
|
|
|
- return (addr >= (void *)_stext && addr < (void *)_end)
|
|
|
- || (addr >= (void *)MODULES_VADDR
|
|
|
- && addr < (void *)MODULES_END);
|
|
|
+ if (addr >= (void *)_stext && addr < (void *)_end)
|
|
|
+ return true;
|
|
|
+ if (is_module_address((unsigned long)addr))
|
|
|
+ return true;
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
static inline bool init_task_stack_addr(const void *addr)
|