From 9b57e30cf5b6036263a1a2551df8574571c6f5a4 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Mon, 13 Nov 2023 17:00:52 -0800 Subject: [PATCH] abort2: Generate a core dump Call sigexit rather than exit1 so that a core is generated. If running the SIGABRT handler is desired, this would need to use kern_psignal() instead. In that case a userspace wrapper in libc would be needed to force an exit if the handler doesn't exit. Given that abort2(2)'s intended use case is when userland is in a sufficiently bad state such that it can't safely call syslog(3) before abort(3), a userspace abort2(3) wrapper in libc might be dubious. Reviewed by: Olivier Certner , emaste Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D42163 --- sys/kern/kern_exit.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 965f4a431755..f9445a481d92 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -827,8 +827,9 @@ kern_abort2(struct thread *td, const char *why, int nargs, void **uargs) sbuf_finish(sb); log(LOG_INFO, "%s", sbuf_data(sb)); sbuf_delete(sb); - exit1(td, 0, sig); - return (0); + PROC_LOCK(p); + sigexit(td, sig); + /* NOTREACHED */ } #ifdef COMPAT_43