Index: nss/lib/certhigh/certvfy.c |
=================================================================== |
--- nss/lib/certhigh/certvfy.c (revision 256695) |
+++ nss/lib/certhigh/certvfy.c (working copy) |
@@ -549,7 +549,18 @@ |
PORT_SetError (SEC_ERROR_PATH_LEN_CONSTRAINT_INVALID); |
LOG_ERROR_OR_EXIT(log, issuerCert, count+1, pathLengthLimit); |
} |
- |
+ |
+ /* make sure that the entire chain is within the name space of the |
+ * current issuer certificate. |
+ */ |
+ rv = CERT_CompareNameSpace(issuerCert, namesList, certsList, |
+ arena, &badCert); |
+ if (rv != SECSuccess || badCert != NULL) { |
+ PORT_SetError(SEC_ERROR_CERT_NOT_IN_NAME_SPACE); |
+ LOG_ERROR_OR_EXIT(log, badCert, count + 1, 0); |
+ goto loser; |
+ } |
+ |
/* XXX - the error logging may need to go down into CRL stuff at some |
* point |
*/ |
@@ -671,16 +682,6 @@ |
} |
} |
- /* make sure that the entire chain is within the name space of the |
- ** current issuer certificate. |
- */ |
- rv = CERT_CompareNameSpace(issuerCert, namesList, certsList, |
- arena, &badCert); |
- if (rv != SECSuccess || badCert != NULL) { |
- PORT_SetError(SEC_ERROR_CERT_NOT_IN_NAME_SPACE); |
- LOG_ERROR_OR_EXIT(log, badCert, count + 1, 0); |
- goto loser; |
- } |
/* make sure that the issuer is not self signed. If it is, then |
* stop here to prevent looping. |
*/ |