aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/stdlib/abort.c
diff options
context:
space:
mode:
authorAlexander Langer <alex@FreeBSD.org>1996-10-26 01:42:33 +0000
committerAlexander Langer <alex@FreeBSD.org>1996-10-26 01:42:33 +0000
commita3f90e9bd59767fb621c0ed0dfb31649e99ea1a9 (patch)
tree2dbebe3e7367d349210b9cb1c42d648176ab3b45 /lib/libc/stdlib/abort.c
parentd1f8ff8c2edf86ccdbe769f1bf87c061ab532ee1 (diff)
downloadsrc-a3f90e9bd59767fb621c0ed0dfb31649e99ea1a9.tar.gz
src-a3f90e9bd59767fb621c0ed0dfb31649e99ea1a9.zip
POSIX requires stdio buffers be flushed on abort.
Obtained from: OpenBSD, Thorsten Lockert <tholo@OpenBSD.ORG>
Notes
Notes: svn path=/head/; revision=19189
Diffstat (limited to 'lib/libc/stdlib/abort.c')
-rw-r--r--lib/libc/stdlib/abort.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/libc/stdlib/abort.c b/lib/libc/stdlib/abort.c
index f41500739fec..4fd34dcb75c0 100644
--- a/lib/libc/stdlib/abort.c
+++ b/lib/libc/stdlib/abort.c
@@ -44,11 +44,19 @@ static char sccsid[] = "@(#)abort.c 8.1 (Berkeley) 6/4/93";
#include "pthread_private.h"
#endif
+void (*__cleanup)();
+
void
abort()
{
sigset_t mask;
+ /*
+ * POSIX requires we flush stdio buffers on abort
+ */
+ if (__cleanup)
+ (*__cleanup)();
+
sigfillset(&mask);
/*
* don't block SIGABRT to give any handler a chance; we ignore