| OLD | NEW |
| 1 diff --git a/ssl/sslinfo.c b/ssl/sslinfo.c | 1 diff --git a/lib/ssl/sslinfo.c b/lib/ssl/sslinfo.c |
| 2 index 00f2f38..ba230d2 100644 | 2 index 216ab0f..7048eb8 100644 |
| 3 --- a/ssl/sslinfo.c | 3 --- a/lib/ssl/sslinfo.c |
| 4 +++ b/ssl/sslinfo.c | 4 +++ b/lib/ssl/sslinfo.c |
| 5 @@ -350,8 +350,13 @@ SSL_ExportKeyingMaterial(PRFileDesc *fd, | 5 @@ -387,8 +387,13 @@ SSL_ExportKeyingMaterial(PRFileDesc *fd, |
| 6 return SECFailure; | 6 return SECFailure; |
| 7 } | 7 } |
| 8 | 8 |
| 9 + ssl_GetRecvBufLock(ss); | 9 + ssl_GetRecvBufLock(ss); |
| 10 + ssl_GetSSL3HandshakeLock(ss); | 10 + ssl_GetSSL3HandshakeLock(ss); |
| 11 + | 11 + |
| 12 if (ss->version < SSL_LIBRARY_VERSION_3_1_TLS) { | 12 if (ss->version < SSL_LIBRARY_VERSION_3_1_TLS) { |
| 13 PORT_SetError(SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_VERSION); | 13 PORT_SetError(SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_VERSION); |
| 14 + ssl_ReleaseSSL3HandshakeLock(ss); | 14 + ssl_ReleaseSSL3HandshakeLock(ss); |
| 15 + ssl_ReleaseRecvBufLock(ss); | 15 + ssl_ReleaseRecvBufLock(ss); |
| 16 return SECFailure; | 16 return SECFailure; |
| 17 } | 17 } |
| 18 | 18 |
| 19 @@ -362,13 +367,17 @@ SSL_ExportKeyingMaterial(PRFileDesc *fd, | 19 @@ -399,13 +404,17 @@ SSL_ExportKeyingMaterial(PRFileDesc *fd, |
| 20 } | 20 } |
| 21 val = PORT_Alloc(valLen); | 21 val = PORT_Alloc(valLen); |
| 22 if (!val) { | 22 if (!val) { |
| 23 + ssl_ReleaseSSL3HandshakeLock(ss); | 23 + ssl_ReleaseSSL3HandshakeLock(ss); |
| 24 + ssl_ReleaseRecvBufLock(ss); | 24 + ssl_ReleaseRecvBufLock(ss); |
| 25 return SECFailure; | 25 return SECFailure; |
| 26 } | 26 } |
| 27 i = 0; | 27 i = 0; |
| 28 + | 28 + |
| 29 PORT_Memcpy(val + i, &ss->ssl3.hs.client_random.rand, SSL3_RANDOM_LENGTH); | 29 PORT_Memcpy(val + i, &ss->ssl3.hs.client_random.rand, SSL3_RANDOM_LENGTH); |
| 30 i += SSL3_RANDOM_LENGTH; | 30 i += SSL3_RANDOM_LENGTH; |
| 31 PORT_Memcpy(val + i, &ss->ssl3.hs.server_random.rand, SSL3_RANDOM_LENGTH); | 31 PORT_Memcpy(val + i, &ss->ssl3.hs.server_random.rand, SSL3_RANDOM_LENGTH); |
| 32 i += SSL3_RANDOM_LENGTH; | 32 i += SSL3_RANDOM_LENGTH; |
| 33 + | 33 + |
| 34 if (hasContext) { | 34 if (hasContext) { |
| 35 val[i++] = contextLen >> 8; | 35 val[i++] = contextLen >> 8; |
| 36 val[i++] = contextLen; | 36 val[i++] = contextLen; |
| 37 @@ -389,6 +398,8 @@ SSL_ExportKeyingMaterial(PRFileDesc *fd, | 37 @@ -426,6 +435,8 @@ SSL_ExportKeyingMaterial(PRFileDesc *fd, |
| 38 valLen, out, outLen); | 38 valLen, out, outLen); |
| 39 } | 39 } |
| 40 ssl_ReleaseSpecReadLock(ss); | 40 ssl_ReleaseSpecReadLock(ss); |
| 41 + ssl_ReleaseSSL3HandshakeLock(ss); | 41 + ssl_ReleaseSSL3HandshakeLock(ss); |
| 42 + ssl_ReleaseRecvBufLock(ss); | 42 + ssl_ReleaseRecvBufLock(ss); |
| 43 | 43 |
| 44 PORT_ZFree(val, valLen); | 44 PORT_ZFree(val, valLen); |
| 45 return rv; | 45 return rv; |
| OLD | NEW |