aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/cryptlib.c
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2009-05-03 14:16:40 +0000
committerAndy Polyakov <appro@openssl.org>2009-05-03 14:16:40 +0000
commit3b58c74c988f32f7b1d5697ff0f4a942858db909 (patch)
treefb8a06f43fedaf3171b241f4c99b7f15d31b7dde /crypto/cryptlib.c
parent7752d34c61246861d1e60d702535481ff9d18a86 (diff)
downloadopenssl-3b58c74c988f32f7b1d5697ff0f4a942858db909.tar.gz
Avoid double dialogs in OpenSSLDie on Windows.
Diffstat (limited to 'crypto/cryptlib.c')
-rw-r--r--crypto/cryptlib.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/crypto/cryptlib.c b/crypto/cryptlib.c
index bb54e6485a..901b87a4dd 100644
--- a/crypto/cryptlib.c
+++ b/crypto/cryptlib.c
@@ -753,6 +753,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
#if defined(_WIN32) && !defined(__CYGWIN__)
#include <tchar.h>
+#include <signal.h>
#if defined(_WIN32_WINNT) && _WIN32_WINNT>=0x0333
int OPENSSL_isservice(void)
@@ -883,7 +884,13 @@ void OpenSSLDie(const char *file,int line,const char *assertion)
OPENSSL_showfatal(
"%s(%d): OpenSSL internal error, assertion failed: %s\n",
file,line,assertion);
+#if !defined(_WIN32)
abort();
+#else
+ /* Win32 customarily shows a dialog, but we just did that... */
+ raise(SIGABRT);
+ _exit(3);
+#endif
}
void *OPENSSL_stderr(void) { return stderr; }