Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Jul 2021 00:48:12 GMT
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 588c7a06dffb - main - KASAN: Implement __asan_unregister_globals()
Message-ID:  <202107100048.16A0mCp4072410@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=588c7a06dffbc74b281dacbdd854437b0815e501

commit 588c7a06dffbc74b281dacbdd854437b0815e501
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2021-07-10 00:38:28 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2021-07-10 00:38:50 +0000

    KASAN: Implement __asan_unregister_globals()
    
    It will be called during KLD unload to unpoison the redzones following
    global variables.  Otherwise, virtual address ranges previously used for
    a KLD may be left tainted, triggering false positives when they are
    recycled.
    
    Reported by:    pho
    Sponsored by:   The FreeBSD Foundation
---
 sys/kern/subr_asan.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/sys/kern/subr_asan.c b/sys/kern/subr_asan.c
index b812f7bca465..07f7b44d08d7 100644
--- a/sys/kern/subr_asan.c
+++ b/sys/kern/subr_asan.c
@@ -948,7 +948,12 @@ __asan_register_globals(struct __asan_global *globals, size_t n)
 void
 __asan_unregister_globals(struct __asan_global *globals, size_t n)
 {
-	/* never called */
+	size_t i;
+
+	for (i = 0; i < n; i++) {
+		kasan_mark(globals[i].beg, globals[i].size_with_redzone,
+		    globals[i].size_with_redzone, 0);
+	}
 }
 
 #define ASAN_LOAD_STORE(size)					\


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202107100048.16A0mCp4072410>