From 8b25899b4c04e7b25fb2318b51b6390f9d5474e8 Mon Sep 17 00:00:00 2001 From: tedu <> Date: Wed, 14 May 2014 21:54:20 +0000 Subject: stop flushing streams in abort(). it's hackish and unsafe, and no longer required. try to document this fact and some of the history. with feedback from deraadt guenther millert --- src/lib/libc/stdlib/abort.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) (limited to 'src/lib/libc/stdlib/abort.c') diff --git a/src/lib/libc/stdlib/abort.c b/src/lib/libc/stdlib/abort.c index 4c8dc70a1d..dd057710ff 100644 --- a/src/lib/libc/stdlib/abort.c +++ b/src/lib/libc/stdlib/abort.c @@ -1,4 +1,4 @@ -/* $OpenBSD: abort.c,v 1.16 2012/11/10 03:46:11 guenther Exp $ */ +/* $OpenBSD: abort.c,v 1.17 2014/05/14 21:54:20 tedu Exp $ */ /* * Copyright (c) 1985 Regents of the University of California. * All rights reserved. @@ -39,8 +39,6 @@ int _thread_sys_sigprocmask(int, const sigset_t *, sigset_t *); void abort(void) { - struct atexit *p = __atexit; - static int cleanup_called = 0; sigset_t mask; @@ -52,21 +50,6 @@ abort(void) sigdelset(&mask, SIGABRT); (void)_thread_sys_sigprocmask(SIG_SETMASK, &mask, (sigset_t *)NULL); - /* - * POSIX requires we flush stdio buffers on abort - */ - if (cleanup_called == 0) { - /* the cleanup routine lives in fns[0] on the last page */ - while (p != NULL && p->next != NULL) - p = p->next; - /* the check for fn_dso == NULL is mostly paranoia */ - if (p != NULL && p->fns[0].fn_dso == NULL && - p->fns[0].fn_ptr.std_func != NULL) { - cleanup_called = 1; - (*p->fns[0].fn_ptr.std_func)(); - } - } - (void)raise(SIGABRT); /* -- cgit v1.2.3-55-g6feb