mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
kasan: merge __kasan_report into kasan_report
Merge __kasan_report() into kasan_report(). The code is simple enough to be readable without the __kasan_report() helper. Link: https://lkml.kernel.org/r/c8a125497ef82f7042b3795918dffb81a85a878e.1646237226.git.andreyknvl@google.com Signed-off-by: Andrey Konovalov <andreyknvl@google.com> Cc: Alexander Potapenko <glider@google.com> Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Marco Elver <elver@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
b3bb1d700e
commit
be8631a176
@ -435,37 +435,31 @@ static void print_report(struct kasan_access_info *info)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __kasan_report(void *addr, size_t size, bool is_write,
|
|
||||||
unsigned long ip)
|
|
||||||
{
|
|
||||||
struct kasan_access_info info;
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
start_report(&flags, true);
|
|
||||||
|
|
||||||
info.access_addr = addr;
|
|
||||||
info.first_bad_addr = kasan_find_first_bad_addr(addr, size);
|
|
||||||
info.access_size = size;
|
|
||||||
info.is_write = is_write;
|
|
||||||
info.ip = ip;
|
|
||||||
|
|
||||||
print_report(&info);
|
|
||||||
|
|
||||||
end_report(&flags, addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool kasan_report(unsigned long addr, size_t size, bool is_write,
|
bool kasan_report(unsigned long addr, size_t size, bool is_write,
|
||||||
unsigned long ip)
|
unsigned long ip)
|
||||||
{
|
{
|
||||||
unsigned long ua_flags = user_access_save();
|
|
||||||
bool ret = true;
|
bool ret = true;
|
||||||
|
void *ptr = (void *)addr;
|
||||||
|
unsigned long ua_flags = user_access_save();
|
||||||
|
unsigned long irq_flags;
|
||||||
|
struct kasan_access_info info;
|
||||||
|
|
||||||
if (unlikely(!report_enabled())) {
|
if (unlikely(!report_enabled())) {
|
||||||
ret = false;
|
ret = false;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
__kasan_report((void *)addr, size, is_write, ip);
|
start_report(&irq_flags, true);
|
||||||
|
|
||||||
|
info.access_addr = ptr;
|
||||||
|
info.first_bad_addr = kasan_find_first_bad_addr(ptr, size);
|
||||||
|
info.access_size = size;
|
||||||
|
info.is_write = is_write;
|
||||||
|
info.ip = ip;
|
||||||
|
|
||||||
|
print_report(&info);
|
||||||
|
|
||||||
|
end_report(&irq_flags, ptr);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
user_access_restore(ua_flags);
|
user_access_restore(ua_flags);
|
||||||
|
Loading…
Reference in New Issue
Block a user