summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Allmann <jallmann@mozilla.com>2017-11-29 09:20:58 +0100
committerJonas Allmann <jallmann@mozilla.com>2017-11-29 09:20:58 +0100
commit83e90b6ed25d611ce1d518872be7a7a163c9fa88 (patch)
tree62e8b0b9eabab70f71459bf685f07af534133366
parentc840be8f11af33c19184e39508df93da81e09efd (diff)
downloadnss-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
-rw-r--r--lib/ssl/sslsock.c14
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;