src: avoid possible race during NodeBIO initialization

PR-URL: https://github.com/nodejs/node/pull/21984
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
Anna Henningsen authored and James M Snell committed 2018-08-12 03:58:49 -07:00
1 parent 987dc07111
commit 40ae307071
4 files changed
+8

No files matched your search

+2
View File
@@ -5141,6 +5141,8 @@ void InitCryptoOnce() {
ERR_load_ENGINE_strings();
ENGINE_load_builtin_engines();
#endif // !OPENSSL_NO_ENGINE
NodeBIO::GetMethod();
}
+2
View File
@@ -97,6 +97,8 @@ extern int VerifyCallback(int preverify_ok, X509_STORE_CTX* ctx);
extern void UseExtraCaCerts(const std::string& file);
void InitCryptoOnce();
class SecureContext : public BaseObject {
public:
~SecureContext() override {
+2
View File
@@ -247,6 +247,8 @@ const BIO_METHOD* NodeBIO::GetMethod() {
return &method;
#else
// This is called from InitCryptoOnce() to avoid race conditions during
// initialization.
static BIO_METHOD* method = nullptr;
if (method == nullptr) {
+2
View File
@@ -164,6 +164,8 @@ class NodeBIO : public MemoryRetainer {
int eof_return_ = -1;
Buffer* read_head_ = nullptr;
Buffer* write_head_ = nullptr;
friend void node::crypto::InitCryptoOnce();
};
} // namespace crypto