nss/bug417664.patch

57 lines
2.3 KiB
Diff

Index: mozilla/security/nss/lib/libpkix/pkix/top/pkix_defaultcrlchecker.c
===================================================================
RCS file: /cvsroot/mozilla/security/nss/lib/libpkix/pkix/top/pkix_defaultcrlchecker.c,v
retrieving revision 1.6
diff -u -u -r1.6 pkix_defaultcrlchecker.c
--- mozilla/security/nss/lib/libpkix/pkix/top/pkix_defaultcrlchecker.c 6 Dec 2007 18:15:10 -0000 1.6
+++ mozilla/security/nss/lib/libpkix/pkix/top/pkix_defaultcrlchecker.c 16 Feb 2008 05:36:03 -0000
@@ -58,6 +58,9 @@
"Certificate is revoked by CRL for aACompromise",
};
+static const int numReasonCodes =
+ sizeof(reasonCodeMsgString) / sizeof(reasonCodeMsgString[0]);
+
/* --Private-DefaultCRLCheckerState-Functions------------------------------- */
/*
@@ -433,8 +436,9 @@
/* Set reason code in state for advance CRL reviewing */
- if (reasonCode >= 0 &&
- reasonCode < sizeof (reasonCodeMsgString)) {
+ if (reasonCode >= 0) {
+ if (reasonCode >= numReasonCodes)
+ reasonCode = 0;
state->reasonCodeMask |= 1 << reasonCode;
PKIX_DEFAULTCRLCHECKERSTATE_DEBUG_ARG
@@ -726,12 +730,13 @@
(crlEntry, &reasonCode, plContext),
PKIX_CRLENTRYGETCRLENTRYREASONCODEFAILED);
- if ((reasonCode >= 0) &&
- (reasonCode < sizeof (reasonCodeMsgString))) {
+ if (reasonCode >= 0) {
+ if (reasonCode >= numReasonCodes)
+ reasonCode = 0;
- allReasonCodes |= (1 << (reasonCode - 1));
+ allReasonCodes |= (1 << reasonCode);
- PKIX_DEFAULTCRLCHECKERSTATE_DEBUG_ARG
+ PKIX_DEFAULTCRLCHECKERSTATE_DEBUG_ARG
("CRL revocation Reason: %s\n ",
reasonCodeMsgString[reasonCode]);
@@ -991,7 +996,7 @@
PKIX_PL_PublicKey *newPublicKey = NULL;
PKIX_Error *checkKeyUsageFail = NULL;
PKIX_Boolean selfIssued = PKIX_FALSE;
- void *nbioContext = PKIX_FALSE;
+ void *nbioContext = NULL;
PKIX_ENTER(CERTCHAINCHECKER, "pkix_DefaultCRLChecker_Check");
PKIX_NULLCHECK_THREE(checker, cert, pNBIOContext);