OLD | NEW |
1 diff --git a/lib/ssl/sslinfo.c b/lib/ssl/sslinfo.c | 1 diff --git a/lib/ssl/sslinfo.c b/lib/ssl/sslinfo.c |
2 index 216ab0f..7048eb8 100644 | 2 index 527b1a4..c59879c 100644 |
3 --- a/lib/ssl/sslinfo.c | 3 --- a/lib/ssl/sslinfo.c |
4 +++ b/lib/ssl/sslinfo.c | 4 +++ b/lib/ssl/sslinfo.c |
5 @@ -387,8 +387,13 @@ SSL_ExportKeyingMaterial(PRFileDesc *fd, | 5 @@ -406,8 +406,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 @@ -399,13 +404,17 @@ SSL_ExportKeyingMaterial(PRFileDesc *fd, | 19 @@ -418,6 +423,8 @@ 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 @@ -445,6 +452,8 @@ SSL_ExportKeyingMaterial(PRFileDesc *fd, |
29 PORT_Memcpy(val + i, &ss->ssl3.hs.client_random.rand, SSL3_RANDOM_LENGTH); | 29 valLen, out, outLen); |
30 i += SSL3_RANDOM_LENGTH; | |
31 PORT_Memcpy(val + i, &ss->ssl3.hs.server_random.rand, SSL3_RANDOM_LENGTH); | |
32 i += SSL3_RANDOM_LENGTH; | |
33 + | |
34 if (hasContext) { | |
35 » val[i++] = contextLen >> 8; | |
36 » val[i++] = contextLen; | |
37 @@ -426,6 +435,8 @@ SSL_ExportKeyingMaterial(PRFileDesc *fd, | |
38 » » » » » valLen, out, outLen); | |
39 } | 30 } |
40 ssl_ReleaseSpecReadLock(ss); | 31 ssl_ReleaseSpecReadLock(ss); |
41 + ssl_ReleaseSSL3HandshakeLock(ss); | 32 + ssl_ReleaseSSL3HandshakeLock(ss); |
42 + ssl_ReleaseRecvBufLock(ss); | 33 + ssl_ReleaseRecvBufLock(ss); |
43 | 34 |
44 PORT_ZFree(val, valLen); | 35 PORT_ZFree(val, valLen); |
45 return rv; | 36 return rv; |
OLD | NEW |