diff options
author | Jonas Allmann <jallmann@mozilla.com> | 2017-11-29 09:20:58 +0100 |
---|---|---|
committer | Jonas Allmann <jallmann@mozilla.com> | 2017-11-29 09:20:58 +0100 |
commit | 83e90b6ed25d611ce1d518872be7a7a163c9fa88 (patch) | |
tree | 62e8b0b9eabab70f71459bf685f07af534133366 /lib | |
parent | c840be8f11af33c19184e39508df93da81e09efd (diff) | |
download | nss-hg-83e90b6ed25d611ce1d518872be7a7a163c9fa88.tar.gz |
Bug 1265127 - fixed race condition in ssl_PushIOLayer, r=franziskus
Reviewers: franziskus
Reviewed By: franziskus
Bug #: 1265127
Differential Revision: https://phabricator.services.mozilla.com/D293
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ssl/sslsock.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/lib/ssl/sslsock.c b/lib/ssl/sslsock.c index c6789af80..3ba10f4f7 100644 --- a/lib/ssl/sslsock.c +++ b/lib/ssl/sslsock.c @@ -107,7 +107,6 @@ sslSessionIDLookupFunc ssl_sid_lookup; sslSessionIDCacheFunc ssl_sid_cache; sslSessionIDUncacheFunc ssl_sid_uncache; -static PRBool ssl_inited = PR_FALSE; static PRDescIdentity ssl_layer_id; PRBool locksEverDisabled; /* implicitly PR_FALSE */ @@ -3462,7 +3461,6 @@ ssl_InitIOLayer(void) { ssl_layer_id = PR_GetUniqueIdentity("SSL"); ssl_SetupIOMethods(); - ssl_inited = PR_TRUE; return PR_SUCCESS; } @@ -3472,15 +3470,13 @@ ssl_PushIOLayer(sslSocket *ns, PRFileDesc *stack, PRDescIdentity id) PRFileDesc *layer = NULL; PRStatus status; - if (!ssl_inited) { - status = PR_CallOnce(&initIoLayerOnce, &ssl_InitIOLayer); - if (status != PR_SUCCESS) - goto loser; + status = PR_CallOnce(&initIoLayerOnce, &ssl_InitIOLayer); + if (status != PR_SUCCESS) { + goto loser; } - - if (ns == NULL) + if (ns == NULL) { goto loser; - + } layer = PR_CreateIOLayerStub(ssl_layer_id, &combined_methods); if (layer == NULL) goto loser; |