Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Mar 2024 02:09:27 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: e0c92dd2b7e6 - main - amd64: initialize td_frame stack area for init(8) main thread
Message-ID:  <202403260209.42Q29RLt013876@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by kib:

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

commit e0c92dd2b7e62e4f8281c9ad1d31465bb32f9e3b
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2024-03-25 12:10:43 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-03-26 02:01:38 +0000

    amd64: initialize td_frame stack area for init(8) main thread
    
    Unitialized td_frame mostly does not matter since all registers are
    overwritten on exec to activate init(8).  Except PSL_T bit from the
    %rflags which might leak into fresh init as garbage, causing spurious
    SIGTRAPs delivered to init until first syscall is executed.
    
    Reviewed by:    emaste, jhb, jhibbits
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D44498
---
 sys/kern/init_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index 3df4b1edf4a2..3e4f19d655e6 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -784,6 +784,7 @@ start_init(void *dummy)
 		 */
 		KASSERT((td->td_pflags & TDP_EXECVMSPC) == 0,
 		    ("nested execve"));
+		memset(td->td_frame, 0, sizeof(*td->td_frame));
 		oldvmspace = p->p_vmspace;
 		error = kern_execve(td, &args, NULL, oldvmspace);
 		KASSERT(error != 0,



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