Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(504)

Side by Side Diff: net/third_party/nss/patches/cachelocks.patch

Issue 111853013: Update net/third_party/nss to NSS 3.15.4. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Update the comment in sslenum.c for the two CHACHA20 cipher suites Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 diff --git a/nss/lib/ssl/ssl3con.c b/nss/lib/ssl/ssl3con.c 1 diff -pu a/nss/lib/ssl/ssl3con.c b/nss/lib/ssl/ssl3con.c
2 index 53c29f0..bc54c99 100644 2 --- a/nss/lib/ssl/ssl3con.c» 2014-01-03 19:02:30.135754914 -0800
3 --- a/nss/lib/ssl/ssl3con.c 3 +++ b/nss/lib/ssl/ssl3con.c» 2014-01-03 19:03:07.266361523 -0800
4 +++ b/nss/lib/ssl/ssl3con.c 4 @@ -5655,7 +5655,6 @@ SSL3_ShutdownServerCache(void)
5 @@ -5593,7 +5593,6 @@ SSL3_ShutdownServerCache(void)
6 } 5 }
7 6
8 PZ_Unlock(symWrapKeysLock); 7 PZ_Unlock(symWrapKeysLock);
9 - ssl_FreeSessionCacheLocks(); 8 - ssl_FreeSessionCacheLocks();
10 return SECSuccess; 9 return SECSuccess;
11 } 10 }
12 11
13 @@ -5645,7 +5644,7 @@ getWrappingKey( sslSocket * ss, 12 @@ -5707,7 +5706,7 @@ getWrappingKey( sslSocket * ss,
14 13
15 pSymWrapKey = &symWrapKeys[symWrapMechIndex].symWrapKey[exchKeyType]; 14 pSymWrapKey = &symWrapKeys[symWrapMechIndex].symWrapKey[exchKeyType];
16 15
17 - ssl_InitSessionCacheLocks(PR_TRUE); 16 - ssl_InitSessionCacheLocks(PR_TRUE);
18 + ssl_InitSessionCacheLocks(); 17 + ssl_InitSessionCacheLocks();
19 18
20 PZ_Lock(symWrapKeysLock); 19 PZ_Lock(symWrapKeysLock);
21 20
22 diff --git a/nss/lib/ssl/sslimpl.h b/nss/lib/ssl/sslimpl.h 21 diff -pu a/nss/lib/ssl/sslimpl.h b/nss/lib/ssl/sslimpl.h
23 index e3ae9ce..59140f8 100644 22 --- a/nss/lib/ssl/sslimpl.h» 2014-01-03 19:02:30.135754914 -0800
24 --- a/nss/lib/ssl/sslimpl.h 23 +++ b/nss/lib/ssl/sslimpl.h» 2014-01-03 19:03:07.266361523 -0800
25 +++ b/nss/lib/ssl/sslimpl.h 24 @@ -1904,9 +1904,7 @@ extern SECStatus ssl_InitSymWrapKeysLock
26 @@ -1845,9 +1845,7 @@ extern SECStatus ssl_InitSymWrapKeysLock(void);
27 25
28 extern SECStatus ssl_FreeSymWrapKeysLock(void); 26 extern SECStatus ssl_FreeSymWrapKeysLock(void);
29 27
30 -extern SECStatus ssl_InitSessionCacheLocks(PRBool lazyInit); 28 -extern SECStatus ssl_InitSessionCacheLocks(PRBool lazyInit);
31 - 29 -
32 -extern SECStatus ssl_FreeSessionCacheLocks(void); 30 -extern SECStatus ssl_FreeSessionCacheLocks(void);
33 +extern SECStatus ssl_InitSessionCacheLocks(void); 31 +extern SECStatus ssl_InitSessionCacheLocks(void);
34 32
35 /***************** platform client auth ****************/ 33 /***************** platform client auth ****************/
36 34
37 diff --git a/nss/lib/ssl/sslnonce.c b/nss/lib/ssl/sslnonce.c 35 diff -pu a/nss/lib/ssl/sslnonce.c b/nss/lib/ssl/sslnonce.c
38 index 5d8a954..a6f7349 100644 36 --- a/nss/lib/ssl/sslnonce.c» 2014-01-03 18:54:48.638219358 -0800
39 --- a/nss/lib/ssl/sslnonce.c 37 +++ b/nss/lib/ssl/sslnonce.c» 2014-01-03 19:03:07.276361687 -0800
40 +++ b/nss/lib/ssl/sslnonce.c
41 @@ -35,91 +35,55 @@ static PZLock * cacheLock = NULL; 38 @@ -35,91 +35,55 @@ static PZLock * cacheLock = NULL;
42 #define LOCK_CACHE lock_cache() 39 #define LOCK_CACHE lock_cache()
43 #define UNLOCK_CACHE PZ_Unlock(cacheLock) 40 #define UNLOCK_CACHE PZ_Unlock(cacheLock)
44 41
45 +static PRCallOnceType lockOnce; 42 -static SECStatus
46 +
47 +/* FreeSessionCacheLocks is a callback from NSS_RegisterShutdown which destroys
48 + * the session cache locks on shutdown and resets them to their initial
49 + * state. */
50 static SECStatus
51 -ssl_InitClientSessionCacheLock(void) 43 -ssl_InitClientSessionCacheLock(void)
52 +FreeSessionCacheLocks(void* appData, void* nssData) 44 -{
53 { 45 - cacheLock = PZ_NewLock(nssILockCache);
54 + static const PRCallOnceType pristineCallOnce;
55 + SECStatus rv;
56 +
57 + if (!cacheLock) {
58 + PORT_SetError(SEC_ERROR_NOT_INITIALIZED);
59 + return SECFailure;
60 + }
61 +
62 + PZ_DestroyLock(cacheLock);
63 + cacheLock = NULL;
64 +
65 + rv = ssl_FreeSymWrapKeysLock();
66 + if (rv != SECSuccess) {
67 + return rv;
68 + }
69 +
70 + lockOnce = pristineCallOnce;
71 + return SECSuccess;
72 +}
73 +
74 +/* InitSessionCacheLocks is called, protected by lockOnce, to create the
75 + * session cache locks. */
76 +static PRStatus
77 +InitSessionCacheLocks(void)
78 +{
79 + SECStatus rv;
80 +
81 cacheLock = PZ_NewLock(nssILockCache);
82 - return cacheLock ? SECSuccess : SECFailure; 46 - return cacheLock ? SECSuccess : SECFailure;
83 -} 47 -}
84 - 48 -
85 -static SECStatus 49 -static SECStatus
86 -ssl_FreeClientSessionCacheLock(void) 50 -ssl_FreeClientSessionCacheLock(void)
87 -{ 51 -{
88 - if (cacheLock) { 52 - if (cacheLock) {
89 + if (cacheLock == NULL) { 53 - PZ_DestroyLock(cacheLock);
90 + return PR_FAILURE; 54 - cacheLock = NULL;
91 + }
92 + rv = ssl_InitSymWrapKeysLock();
93 + if (rv != SECSuccess) {
94 + PRErrorCode error = PORT_GetError();
95 PZ_DestroyLock(cacheLock);
96 cacheLock = NULL;
97 - return SECSuccess; 55 - return SECSuccess;
98 - } 56 - }
99 - PORT_SetError(SEC_ERROR_NOT_INITIALIZED); 57 - PORT_SetError(SEC_ERROR_NOT_INITIALIZED);
100 - return SECFailure; 58 - return SECFailure;
101 -} 59 -}
102 - 60 -
103 -static PRBool LocksInitializedEarly = PR_FALSE; 61 -static PRBool LocksInitializedEarly = PR_FALSE;
104 - 62 -
105 -static SECStatus 63 -static SECStatus
106 -FreeSessionCacheLocks() 64 -FreeSessionCacheLocks()
107 -{ 65 -{
108 - SECStatus rv1, rv2; 66 - SECStatus rv1, rv2;
109 - rv1 = ssl_FreeSymWrapKeysLock(); 67 - rv1 = ssl_FreeSymWrapKeysLock();
110 - rv2 = ssl_FreeClientSessionCacheLock(); 68 - rv2 = ssl_FreeClientSessionCacheLock();
111 - if ( (SECSuccess == rv1) && (SECSuccess == rv2) ) { 69 - if ( (SECSuccess == rv1) && (SECSuccess == rv2) ) {
112 - return SECSuccess; 70 - return SECSuccess;
113 - } 71 - }
114 - return SECFailure; 72 - return SECFailure;
115 -} 73 -}
116 - 74 +static PRCallOnceType lockOnce;
117 -static SECStatus 75
76 +/* FreeSessionCacheLocks is a callback from NSS_RegisterShutdown which destroys
77 + * the session cache locks on shutdown and resets them to their initial
78 + * state. */
79 static SECStatus
118 -InitSessionCacheLocks(void) 80 -InitSessionCacheLocks(void)
119 -{ 81 +FreeSessionCacheLocks(void* appData, void* nssData)
82 {
120 - SECStatus rv1, rv2; 83 - SECStatus rv1, rv2;
121 - PRErrorCode rc; 84 - PRErrorCode rc;
122 - rv1 = ssl_InitSymWrapKeysLock(); 85 - rv1 = ssl_InitSymWrapKeysLock();
123 - rv2 = ssl_InitClientSessionCacheLock(); 86 - rv2 = ssl_InitClientSessionCacheLock();
124 - if ( (SECSuccess == rv1) && (SECSuccess == rv2) ) { 87 - if ( (SECSuccess == rv1) && (SECSuccess == rv2) ) {
125 - return SECSuccess; 88 - return SECSuccess;
126 - } 89 - }
127 - rc = PORT_GetError(); 90 - rc = PORT_GetError();
128 - FreeSessionCacheLocks(); 91 - FreeSessionCacheLocks();
129 - PORT_SetError(rc); 92 - PORT_SetError(rc);
130 - return SECFailure; 93 - return SECFailure;
131 -} 94 -}
132 - 95 + static const PRCallOnceType pristineCallOnce;
96 + SECStatus rv;
97
133 -/* free the session cache locks if they were initialized early */ 98 -/* free the session cache locks if they were initialized early */
134 -SECStatus 99 -SECStatus
135 -ssl_FreeSessionCacheLocks() 100 -ssl_FreeSessionCacheLocks()
136 -{ 101 -{
137 - PORT_Assert(PR_TRUE == LocksInitializedEarly); 102 - PORT_Assert(PR_TRUE == LocksInitializedEarly);
138 - if (!LocksInitializedEarly) { 103 - if (!LocksInitializedEarly) {
139 - PORT_SetError(SEC_ERROR_NOT_INITIALIZED); 104 + if (!cacheLock) {
140 - return SECFailure; 105 PORT_SetError(SEC_ERROR_NOT_INITIALIZED);
141 - } 106 return SECFailure;
107 }
142 - FreeSessionCacheLocks(); 108 - FreeSessionCacheLocks();
143 - LocksInitializedEarly = PR_FALSE; 109 - LocksInitializedEarly = PR_FALSE;
144 - return SECSuccess; 110 - return SECSuccess;
145 -} 111 -}
146 - 112
147 -static PRCallOnceType lockOnce; 113 -static PRCallOnceType lockOnce;
148 - 114 + PZ_DestroyLock(cacheLock);
115 + cacheLock = NULL;
116
149 -/* free the session cache locks if they were initialized lazily */ 117 -/* free the session cache locks if they were initialized lazily */
150 -static SECStatus ssl_ShutdownLocks(void* appData, void* nssData) 118 -static SECStatus ssl_ShutdownLocks(void* appData, void* nssData)
151 -{ 119 -{
152 - PORT_Assert(PR_FALSE == LocksInitializedEarly); 120 - PORT_Assert(PR_FALSE == LocksInitializedEarly);
153 - if (LocksInitializedEarly) { 121 - if (LocksInitializedEarly) {
154 - PORT_SetError(SEC_ERROR_LIBRARY_FAILURE); 122 - PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
155 - return SECFailure; 123 - return SECFailure;
156 - } 124 + rv = ssl_FreeSymWrapKeysLock();
125 + if (rv != SECSuccess) {
126 + return rv;
127 }
157 - FreeSessionCacheLocks(); 128 - FreeSessionCacheLocks();
158 - memset(&lockOnce, 0, sizeof(lockOnce)); 129 - memset(&lockOnce, 0, sizeof(lockOnce));
159 - return SECSuccess; 130 +
160 -} 131 + lockOnce = pristineCallOnce;
161 - 132 return SECSuccess;
133 }
134
162 -static PRStatus initSessionCacheLocksLazily(void) 135 -static PRStatus initSessionCacheLocksLazily(void)
163 -{ 136 +/* InitSessionCacheLocks is called, protected by lockOnce, to create the
137 + * session cache locks. */
138 +static PRStatus
139 +InitSessionCacheLocks(void)
140 {
164 - SECStatus rv = InitSessionCacheLocks(); 141 - SECStatus rv = InitSessionCacheLocks();
165 - if (SECSuccess != rv) { 142 - if (SECSuccess != rv) {
166 + PORT_SetError(error); 143 + SECStatus rv;
144 +
145 + cacheLock = PZ_NewLock(nssILockCache);
146 + if (cacheLock == NULL) {
167 return PR_FAILURE; 147 return PR_FAILURE;
168 } 148 }
169 - rv = NSS_RegisterShutdown(ssl_ShutdownLocks, NULL); 149 - rv = NSS_RegisterShutdown(ssl_ShutdownLocks, NULL);
150 + rv = ssl_InitSymWrapKeysLock();
151 + if (rv != SECSuccess) {
152 + PRErrorCode error = PORT_GetError();
153 + PZ_DestroyLock(cacheLock);
154 + cacheLock = NULL;
155 + PORT_SetError(error);
156 + return PR_FAILURE;
157 + }
170 + 158 +
171 + rv = NSS_RegisterShutdown(FreeSessionCacheLocks, NULL); 159 + rv = NSS_RegisterShutdown(FreeSessionCacheLocks, NULL);
172 PORT_Assert(SECSuccess == rv); 160 PORT_Assert(SECSuccess == rv);
173 if (SECSuccess != rv) { 161 if (SECSuccess != rv) {
174 return PR_FAILURE; 162 return PR_FAILURE;
175 @@ -127,34 +91,18 @@ static PRStatus initSessionCacheLocksLazily(void) 163 @@ -127,34 +91,18 @@ static PRStatus initSessionCacheLocksLaz
176 return PR_SUCCESS; 164 return PR_SUCCESS;
177 } 165 }
178 166
179 -/* lazyInit means that the call is not happening during a 1-time 167 -/* lazyInit means that the call is not happening during a 1-time
180 - * initialization function, but rather during dynamic, lazy initialization 168 - * initialization function, but rather during dynamic, lazy initialization
181 - */ 169 - */
182 SECStatus 170 SECStatus
183 -ssl_InitSessionCacheLocks(PRBool lazyInit) 171 -ssl_InitSessionCacheLocks(PRBool lazyInit)
184 +ssl_InitSessionCacheLocks(void) 172 +ssl_InitSessionCacheLocks(void)
185 { 173 {
(...skipping 20 matching lines...) Expand all
206 194
207 -static void 195 -static void
208 +static void 196 +static void
209 lock_cache(void) 197 lock_cache(void)
210 { 198 {
211 - ssl_InitSessionCacheLocks(PR_TRUE); 199 - ssl_InitSessionCacheLocks(PR_TRUE);
212 + ssl_InitSessionCacheLocks(); 200 + ssl_InitSessionCacheLocks();
213 PZ_Lock(cacheLock); 201 PZ_Lock(cacheLock);
214 } 202 }
215 203
216 diff --git a/nss/lib/ssl/sslsnce.c b/nss/lib/ssl/sslsnce.c 204 diff -pu a/nss/lib/ssl/sslsnce.c b/nss/lib/ssl/sslsnce.c
217 index b0446ad..34e07b0 100644 205 --- a/nss/lib/ssl/sslsnce.c» 2014-01-03 18:38:48.402575652 -0800
218 --- a/nss/lib/ssl/sslsnce.c 206 +++ b/nss/lib/ssl/sslsnce.c» 2014-01-03 19:03:07.276361687 -0800
219 +++ b/nss/lib/ssl/sslsnce.c 207 @@ -1353,7 +1353,7 @@ SSL_ConfigServerSessionIDCache(» int
220 @@ -1353,7 +1353,7 @@ SSL_ConfigServerSessionIDCache(» int maxCacheEntries ,
221 PRUint32 ssl3_timeout, 208 PRUint32 ssl3_timeout,
222 const char * directory) 209 const char * directory)
223 { 210 {
224 - ssl_InitSessionCacheLocks(PR_FALSE); 211 - ssl_InitSessionCacheLocks(PR_FALSE);
225 + ssl_InitSessionCacheLocks(); 212 + ssl_InitSessionCacheLocks();
226 return SSL_ConfigServerSessionIDCacheInstance(&globalCache, 213 return SSL_ConfigServerSessionIDCacheInstance(&globalCache,
227 maxCacheEntries, ssl2_timeout, ssl3_timeout, directory, PR_FALSE ); 214 maxCacheEntries, ssl2_timeout, ssl3_timeout, directory, PR_FALSE );
228 } 215 }
229 @@ -1467,7 +1467,7 @@ SSL_ConfigServerSessionIDCacheWithOpt( 216 @@ -1467,7 +1467,7 @@ SSL_ConfigServerSessionIDCacheWithOpt(
230 PRBool enableMPCache) 217 PRBool enableMPCache)
231 { 218 {
232 if (!enableMPCache) { 219 if (!enableMPCache) {
233 - ssl_InitSessionCacheLocks(PR_FALSE); 220 - ssl_InitSessionCacheLocks(PR_FALSE);
234 + ssl_InitSessionCacheLocks(); 221 + ssl_InitSessionCacheLocks();
235 return ssl_ConfigServerSessionIDCacheInstanceWithOpt(&globalCache, 222 return ssl_ConfigServerSessionIDCacheInstanceWithOpt(&globalCache,
236 ssl2_timeout, ssl3_timeout, directory, PR_FALSE, 223 ssl2_timeout, ssl3_timeout, directory, PR_FALSE,
237 maxCacheEntries, maxCertCacheEntries, maxSrvNameCacheEntries); 224 maxCacheEntries, maxCertCacheEntries, maxSrvNameCacheEntries);
238 @@ -1512,7 +1512,7 @@ SSL_InheritMPServerSIDCacheInstance(cacheDesc *cache, cons t char * envString) 225 @@ -1512,7 +1512,7 @@ SSL_InheritMPServerSIDCacheInstance(cach
239 return SECSuccess; /* already done. */ 226 return SECSuccess; /* already done. */
240 } 227 }
241 228
242 - ssl_InitSessionCacheLocks(PR_FALSE); 229 - ssl_InitSessionCacheLocks(PR_FALSE);
243 + ssl_InitSessionCacheLocks(); 230 + ssl_InitSessionCacheLocks();
244 231
245 ssl_sid_lookup = ServerSessionIDLookup; 232 ssl_sid_lookup = ServerSessionIDLookup;
246 ssl_sid_cache = ServerSessionIDCache; 233 ssl_sid_cache = ServerSessionIDCache;
OLDNEW
« no previous file with comments | « net/third_party/nss/patches/cachecerts.patch ('k') | net/third_party/nss/patches/canfalsestart.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698