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

Unified Diff: nss/mozilla/security/nss/lib/libpkix/pkix/results/pkix_valresult.c

Issue 10540165: Update NSS to NSS 3.13.5 (from NSS 3.13.3). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/
Patch Set: Created 8 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: nss/mozilla/security/nss/lib/libpkix/pkix/results/pkix_valresult.c
===================================================================
--- nss/mozilla/security/nss/lib/libpkix/pkix/results/pkix_valresult.c (revision 142244)
+++ nss/mozilla/security/nss/lib/libpkix/pkix/results/pkix_valresult.c (working copy)
@@ -89,6 +89,8 @@
PKIX_Boolean cmpResult;
PKIX_ValidateResult *firstValResult = NULL;
PKIX_ValidateResult *secondValResult = NULL;
+ PKIX_TrustAnchor *firstAnchor = NULL;
+ PKIX_TrustAnchor *secondAnchor = NULL;
PKIX_PolicyNode *firstTree = NULL;
PKIX_PolicyNode *secondTree = NULL;
@@ -117,13 +119,20 @@
if (!cmpResult) goto cleanup;
- PKIX_CHECK(PKIX_PL_Object_Equals
- ((PKIX_PL_Object *)firstValResult->anchor,
- (PKIX_PL_Object *)secondValResult->anchor,
- &cmpResult,
- plContext),
- PKIX_OBJECTEQUALSFAILED);
+ firstAnchor = firstValResult->anchor;
+ secondAnchor = secondValResult->anchor;
+ if ((firstAnchor != NULL) && (secondAnchor != NULL)) {
+ PKIX_CHECK(PKIX_PL_Object_Equals
+ ((PKIX_PL_Object *)firstAnchor,
+ (PKIX_PL_Object *)secondAnchor,
+ &cmpResult,
+ plContext),
+ PKIX_OBJECTEQUALSFAILED);
+ } else {
+ cmpResult = (firstAnchor == secondAnchor);
+ }
+
if (!cmpResult) goto cleanup;
firstTree = firstValResult->policyTree;
@@ -137,17 +146,9 @@
plContext),
PKIX_OBJECTEQUALSFAILED);
} else {
- if (PKIX_EXACTLY_ONE_NULL(firstTree, secondTree)) {
- cmpResult = PKIX_FALSE;
- }
+ cmpResult = (firstTree == secondTree);
}
- /*
- * The remaining case is that both are null,
- * which we consider equality.
- * cmpResult = PKIX_TRUE;
- */
-
*pResult = cmpResult;
cleanup:
@@ -170,7 +171,6 @@
PKIX_UInt32 pubKeyHash = 0;
PKIX_UInt32 anchorHash = 0;
PKIX_UInt32 policyTreeHash = 0;
- PKIX_PolicyNode *policyTree = NULL;
PKIX_ENTER(VALIDATERESULT, "pkix_ValidateResult_Hashcode");
PKIX_NULLCHECK_TWO(object, pHashcode);
@@ -184,12 +184,15 @@
((PKIX_PL_Object *)valResult->pubKey, &pubKeyHash, plContext),
PKIX_OBJECTHASHCODEFAILED);
- PKIX_CHECK(PKIX_PL_Object_Hashcode
- ((PKIX_PL_Object *)valResult->anchor, &anchorHash, plContext),
- PKIX_OBJECTHASHCODEFAILED);
+ if (valResult->anchor) {
+ PKIX_CHECK(PKIX_PL_Object_Hashcode
+ ((PKIX_PL_Object *)valResult->anchor,
+ &anchorHash,
+ plContext),
+ PKIX_OBJECTHASHCODEFAILED);
+ }
- policyTree = valResult->policyTree;
- if (policyTree) {
+ if (valResult->policyTree) {
PKIX_CHECK(PKIX_PL_Object_Hashcode
((PKIX_PL_Object *)valResult->policyTree,
&policyTreeHash,
@@ -241,27 +244,35 @@
PKIX_CHECK(pkix_CheckType(object, PKIX_VALIDATERESULT_TYPE, plContext),
PKIX_OBJECTNOTVALIDATERESULT);
+ PKIX_CHECK(PKIX_PL_String_Create
+ (PKIX_ESCASCII, asciiFormat, 0, &formatString, plContext),
+ PKIX_STRINGCREATEFAILED);
+
valResult = (PKIX_ValidateResult*)object;
anchor = valResult->anchor;
- PKIX_CHECK(PKIX_PL_String_Create
- (PKIX_ESCASCII, asciiFormat, 0, &formatString, plContext),
- PKIX_STRINGCREATEFAILED);
+ if (anchor) {
+ PKIX_CHECK(PKIX_PL_Object_ToString
+ ((PKIX_PL_Object *)anchor, &anchorString, plContext),
+ PKIX_OBJECTTOSTRINGFAILED);
+ } else {
+ PKIX_CHECK(PKIX_PL_String_Create
+ (PKIX_ESCASCII,
+ asciiNullString,
+ 0,
+ &anchorString,
+ plContext),
+ PKIX_STRINGCREATEFAILED);
+ }
- PKIX_CHECK(PKIX_PL_Object_ToString
- ((PKIX_PL_Object *)anchor, &anchorString, plContext),
- PKIX_OBJECTTOSTRINGFAILED);
-
pubKey = valResult->pubKey;
PKIX_CHECK(PKIX_PL_Object_ToString
((PKIX_PL_Object *)pubKey, &pubKeyString, plContext),
PKIX_OBJECTTOSTRINGFAILED);
- PKIX_CHECK(PKIX_ValidateResult_GetPolicyTree
- (valResult, &policyTree, plContext),
- PKIX_VALIDATERESULTGETPOLICYTREEFAILED);
+ policyTree = valResult->policyTree;
if (policyTree) {
PKIX_CHECK(PKIX_PL_Object_ToString
@@ -293,7 +304,6 @@
PKIX_DECREF(formatString);
PKIX_DECREF(anchorString);
PKIX_DECREF(pubKeyString);
- PKIX_DECREF(policyTree);
PKIX_DECREF(treeString);
PKIX_RETURN(VALIDATERESULT);
@@ -347,7 +357,7 @@
* "pubKey"
* PublicKey of the desired ValidateResult. Must be non-NULL.
* "anchor"
- * TrustAnchor of the desired Validateresult. Must be non-NULL.
+ * TrustAnchor of the desired Validateresult. May be NULL.
* "policyTree"
* PolicyNode of the desired ValidateResult; may be NULL
* "pResult"
@@ -371,7 +381,7 @@
PKIX_ValidateResult *result = NULL;
PKIX_ENTER(VALIDATERESULT, "pkix_ValidateResult_Create");
- PKIX_NULLCHECK_THREE(pubKey, anchor, pResult);
+ PKIX_NULLCHECK_TWO(pubKey, pResult);
PKIX_CHECK(PKIX_PL_Object_Alloc
(PKIX_VALIDATERESULT_TYPE,

Powered by Google App Engine
This is Rietveld 408576698