mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-21 07:47:32 +09:00
import changes from mozilla nss repo:
- Bug 1641480, TLS 1.3: tighten CCS handling in compatibility mode, r=mt - Bug 1672703, always tolerate the first CCS in TLS 1.3, r=mt - Bug 1663661 - Guard against NULL token in nssSlot_IsTokenPresent. r=jcj - Bug 1607449 - Lock cert->nssCertificate to prevent data race. r=jcj,keeler - Bug 1679290 - Don't hold slot lock when taking session lock r=bbeurdouche
This commit is contained in:
parent
ee3eabdb1e
commit
ecf2071a46
9 changed files with 184 additions and 29 deletions
|
|
@ -866,9 +866,9 @@ fill_CERTCertificateFields(NSSCertificate *c, CERTCertificate *cc, PRBool forced
|
|||
CERT_LockCertTempPerm(cc);
|
||||
cc->istemp = PR_FALSE; /* CERT_NewTemp will override this */
|
||||
cc->isperm = PR_TRUE; /* by default */
|
||||
CERT_UnlockCertTempPerm(cc);
|
||||
/* pointer back */
|
||||
cc->nssCertificate = c;
|
||||
CERT_UnlockCertTempPerm(cc);
|
||||
if (trust) {
|
||||
/* force the cert type to be recomputed to include trust info */
|
||||
PRUint32 nsCertType = cert_ComputeCertType(cc);
|
||||
|
|
@ -919,7 +919,10 @@ stan_GetCERTCertificate(NSSCertificate *c, PRBool forceUpdate)
|
|||
nss_SetError(NSS_ERROR_INTERNAL_ERROR);
|
||||
goto loser;
|
||||
}
|
||||
if (!cc->nssCertificate || forceUpdate) {
|
||||
CERT_LockCertTempPerm(cc);
|
||||
NSSCertificate *nssCert = cc->nssCertificate;
|
||||
CERT_UnlockCertTempPerm(cc);
|
||||
if (!nssCert || forceUpdate) {
|
||||
fill_CERTCertificateFields(c, cc, forceUpdate);
|
||||
} else if (CERT_GetCertTrust(cc, &certTrust) != SECSuccess) {
|
||||
CERTCertTrust *trust;
|
||||
|
|
@ -1018,7 +1021,9 @@ STAN_GetNSSCertificate(CERTCertificate *cc)
|
|||
nssCryptokiInstance *instance;
|
||||
nssPKIObject *pkiob;
|
||||
NSSArena *arena;
|
||||
CERT_LockCertTempPerm(cc);
|
||||
c = cc->nssCertificate;
|
||||
CERT_UnlockCertTempPerm(cc);
|
||||
if (c) {
|
||||
return c;
|
||||
}
|
||||
|
|
@ -1083,7 +1088,9 @@ STAN_GetNSSCertificate(CERTCertificate *cc)
|
|||
nssPKIObject_AddInstance(&c->object, instance);
|
||||
}
|
||||
c->decoding = create_decoded_pkix_cert_from_nss3cert(NULL, cc);
|
||||
CERT_LockCertTempPerm(cc);
|
||||
cc->nssCertificate = c;
|
||||
CERT_UnlockCertTempPerm(cc);
|
||||
return c;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue