lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 14 Sep 2020 20:58:28 -0700 From: David Gow <davidgow@...gle.com> To: trishalfonso@...gle.com, brendanhiggins@...gle.com, aryabinin@...tuozzo.com, dvyukov@...gle.com, mingo@...hat.com, peterz@...radead.org, juri.lelli@...hat.com, vincent.guittot@...aro.org, andreyknvl@...gle.com, shuah@...nel.org, akpm@...ux-foundation.org Cc: David Gow <davidgow@...gle.com>, linux-kernel@...r.kernel.org, kasan-dev@...glegroups.com, kunit-dev@...glegroups.com, linux-kselftest@...r.kernel.org, linux-mm@...ck.org Subject: [PATCH v14 5/5] mm: kasan: Do not panic if both panic_on_warn and kasan_multishot set KASAN errors will currently trigger a panic when panic_on_warn is set. This renders kasan_multishot useless, as further KASAN errors won't be reported if the kernel has already paniced. By making kasan_multishot disable this behaviour for KASAN errors, we can still have the benefits of panic_on_warn for non-KASAN warnings, yet be able to use kasan_multishot. This is particularly important when running KASAN tests, which need to trigger multiple KASAN errors: previously these would panic the system if panic_on_warn was set, now they can run (and will panic the system should non-KASAN warnings show up). Signed-off-by: David Gow <davidgow@...gle.com> Reviewed-by: Andrey Konovalov <andreyknvl@...gle.com> Reviewed-by: Brendan Higgins <brendanhiggins@...gle.com> Tested-by: Andrey Konovalov <andreyknvl@...gle.com> --- mm/kasan/report.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/kasan/report.c b/mm/kasan/report.c index e2c14b10bc81..00a53f1355ae 100644 --- a/mm/kasan/report.c +++ b/mm/kasan/report.c @@ -95,7 +95,7 @@ static void end_report(unsigned long *flags) pr_err("==================================================================\n"); add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE); spin_unlock_irqrestore(&report_lock, *flags); - if (panic_on_warn) { + if (panic_on_warn && !test_bit(KASAN_BIT_MULTI_SHOT, &kasan_flags)) { /* * This thread may hit another WARN() in the panic path. * Resetting this prevents additional WARN() from panicking the -- 2.28.0.618.gf4bc123cb7-goog
Powered by blists - more mailing lists