Skip to content

Commit 15fa779

Browse files
legendecastargos
authored andcommitted
src: fix race on process exit and off thread CA loading
When calling `process.exit()` or on uncaught exceptions as soon as the process starts, the process will try to terminate immediately. In this case, there could be a race condition on the unfinished off-thread system CA loader which tries to access the OpenSSL API which has been de-inited on the main thread. PR-URL: #59632 Refs: #59550 Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
1 parent 90d0a1b commit 15fa779

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/api/environment.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
#include <cstdlib>
2+
#if HAVE_OPENSSL
3+
#include "crypto/crypto_util.h"
4+
#endif // HAVE_OPENSSL
25
#include "env_properties.h"
36
#include "node.h"
47
#include "node_builtins.h"
@@ -1024,6 +1027,11 @@ void DefaultProcessExitHandlerInternal(Environment* env, ExitCode exit_code) {
10241027
// in node_v8_platform-inl.h
10251028
uv_library_shutdown();
10261029
DisposePlatform();
1030+
1031+
#if HAVE_OPENSSL
1032+
crypto::CleanupCachedRootCertificates();
1033+
#endif // HAVE_OPENSSL
1034+
10271035
Exit(exit_code);
10281036
}
10291037

0 commit comments

Comments
 (0)