aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhenlei Huang <zlei@FreeBSD.org>2023-10-12 10:14:48 +0000
committerZhenlei Huang <zlei@FreeBSD.org>2023-10-24 14:35:51 +0000
commit5edc166571c44e61140e3b0cc8105c2a63bd47a4 (patch)
treee8319801ab9fd6afe171d34cf1ea62149018e05c
parent423bb3869b71c7e068fc89740c9d6cfdb9cb7be1 (diff)
downloadsrc-5edc166571c44e61140e3b0cc8105c2a63bd47a4.tar.gz
src-5edc166571c44e61140e3b0cc8105c2a63bd47a4.zip
kasan: Add corresponding sysctl knob for loader tunable
The loader tunable 'debug.kasan.disabled' does not have corresponding sysctl MIB entry. Add it so that it can be retrieved, and `sysctl -T` will also report it correctly. Reviewed by: markj Approved by: re (gjb) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D42138 (cherry picked from commit db5d0bc868be669ed6588ebeccf8c02e76aabc41) (cherry picked from commit 6f8ef4d6e44ee27a08c14ab6a892ffccf332bcf7)
-rw-r--r--sys/kern/subr_asan.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/kern/subr_asan.c b/sys/kern/subr_asan.c
index 44c96435a499..c3664d9cf6c2 100644
--- a/sys/kern/subr_asan.c
+++ b/sys/kern/subr_asan.c
@@ -92,7 +92,10 @@ SYSCTL_INT(_debug_kasan, OID_AUTO, panic_on_violation, CTLFLAG_RDTUN,
&panic_on_violation, 0,
"Panic if an invalid access is detected");
-static bool kasan_enabled __read_mostly = false;
+#define kasan_enabled (!kasan_disabled)
+static bool kasan_disabled __read_mostly = true;
+SYSCTL_BOOL(_debug_kasan, OID_AUTO, disabled, CTLFLAG_RDTUN | CTLFLAG_NOFETCH,
+ &kasan_disabled, 0, "KASAN is disabled");
/* -------------------------------------------------------------------------- */
@@ -136,7 +139,7 @@ kasan_init(void)
kasan_md_init();
/* Now officially enabled. */
- kasan_enabled = true;
+ kasan_disabled = false;
}
void
@@ -180,7 +183,7 @@ kasan_code_name(uint8_t code)
#define REPORT(f, ...) do { \
if (panic_on_violation) { \
- kasan_enabled = false; \
+ kasan_disabled = true; \
panic(f, __VA_ARGS__); \
} else { \
struct stack st; \