mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
ubsan: check panic_on_warn
Syzkaller expects kernel warnings to panic when the panic_on_warn sysctl is set. More work is needed here to have UBSan reuse the WARN infrastructure, but for now, just check the flag manually. Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Alexander Potapenko <glider@google.com> Cc: Andrey Konovalov <andreyknvl@google.com> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Dan Carpenter <dan.carpenter@oracle.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Elena Petrova <lenaptr@google.com> Cc: "Gustavo A. R. Silva" <gustavo@embeddedor.com> Link: https://lore.kernel.org/lkml/CACT4Y+bsLJ-wFx_TaXqax3JByUOWB3uk787LsyMVcfW6JzzGvg@mail.gmail.com Link: http://lkml.kernel.org/r/20200227193516.32566-5-keescook@chromium.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ae2e1aad3e
commit
1d28c8d6d0
11
lib/ubsan.c
11
lib/ubsan.c
@ -156,6 +156,17 @@ static void ubsan_epilogue(void)
|
|||||||
"========================================\n");
|
"========================================\n");
|
||||||
|
|
||||||
current->in_ubsan--;
|
current->in_ubsan--;
|
||||||
|
|
||||||
|
if (panic_on_warn) {
|
||||||
|
/*
|
||||||
|
* This thread may hit another WARN() in the panic path.
|
||||||
|
* Resetting this prevents additional WARN() from panicking the
|
||||||
|
* system on this thread. Other threads are blocked by the
|
||||||
|
* panic_mutex in panic().
|
||||||
|
*/
|
||||||
|
panic_on_warn = 0;
|
||||||
|
panic("panic_on_warn set ...\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_overflow(struct overflow_data *data, void *lhs,
|
static void handle_overflow(struct overflow_data *data, void *lhs,
|
||||||
|
Loading…
Reference in New Issue
Block a user