git: 9b57e30cf5b6 - main - abort2: Generate a core dump
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 14 Nov 2023 01:01:21 UTC
The branch main has been updated by jhb:
URL: https://cgit.FreeBSD.org/src/commit/?id=9b57e30cf5b6036263a1a2551df8574571c6f5a4
commit 9b57e30cf5b6036263a1a2551df8574571c6f5a4
Author: John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2023-11-14 01:00:52 +0000
Commit: John Baldwin <jhb@FreeBSD.org>
CommitDate: 2023-11-14 01:00:52 +0000
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 <olce.freebsd@certner.fr>, 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 @@ out:
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