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
This commit is contained in:
John Baldwin 2023-11-13 17:00:52 -08:00
parent ab063ac444
commit 9b57e30cf5

View File

@ -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