[xmlsec] fix a couple minor issues in xmlsec-nss
- From: Aleksey Sanin <aleksey src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [xmlsec] fix a couple minor issues in xmlsec-nss
- Date: Mon, 26 Apr 2010 07:27:10 +0000 (UTC)
commit 25a1ac7b0ae1886dd1f5647516c2f83391e63660
Author: Aleksey Sanin <aleksey aleksey com>
Date: Mon Apr 26 00:28:34 2010 -0700
fix a couple minor issues in xmlsec-nss
TODO | 2 +-
src/nss/x509.c | 2 +-
src/nss/x509vfy.c | 41 +++++++++++++++++++++++------------------
3 files changed, 25 insertions(+), 20 deletions(-)
---
diff --git a/TODO b/TODO
index d75c5ed..e58c94f 100644
--- a/TODO
+++ b/TODO
@@ -12,7 +12,7 @@ Tests status
* xmlsec-nss (April 25, 2010 using NSS 3.12.6)
-** Skipped tests (missing transforms: RIPEMD160, SHA224, RSA/OAEP, GOST)
+** Skipped tests due to missing transforms: RIPEMD160, SHA224, RSA/OAEP, GOST
aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160
aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64
diff --git a/src/nss/x509.c b/src/nss/x509.c
index 2d7d881..887c77c 100644
--- a/src/nss/x509.c
+++ b/src/nss/x509.c
@@ -1994,7 +1994,7 @@ xmlSecNssASN1IntegerWrite(SECItem *num) {
* NSS bug http://bugzilla.mozilla.org/show_bug.cgi?id=212864 is fixed
*/
for(ii = num->len; ii > 0; --ii, shift += 8) {
- val |= (num->data[ii - 1]) << shift;
+ val |= ((PRUint64)num->data[ii - 1]) << shift;
}
res = (xmlChar*)xmlMalloc(resLen + 1);
diff --git a/src/nss/x509vfy.c b/src/nss/x509vfy.c
index 03bef7e..fdb866f 100644
--- a/src/nss/x509vfy.c
+++ b/src/nss/x509vfy.c
@@ -370,7 +370,7 @@ xmlSecNssGetCertName(const xmlChar * name) {
return(NULL);
}
while( (p = (xmlChar*)xmlStrstr(name2, BAD_CAST "emailAddress=")) != NULL) {
- memcpy(p, " mail=", 13);
+ memcpy(p, " E=", 13);
}
tmp = xmlSecNssX509NameRead(name2, xmlStrlen(name2));
@@ -428,14 +428,16 @@ xmlSecNssX509FindCert(CERTCertList* certsList, const xmlChar *subjectName,
goto done;
}
- arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
- if (arena == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "PORT_NewArena",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
+ if(arena == NULL) {
+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
+ if (arena == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "PORT_NewArena",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
}
nameitem = SEC_ASN1EncodeItem(arena, NULL, (void *)name,
@@ -467,14 +469,16 @@ xmlSecNssX509FindCert(CERTCertList* certsList, const xmlChar *subjectName,
goto done;
}
- arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
- if (arena == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "PORT_NewArena",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
+ if(arena == NULL) {
+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
+ if (arena == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "PORT_NewArena",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
}
nameitem = SEC_ASN1EncodeItem(arena, NULL, (void *)name,
@@ -493,7 +497,6 @@ xmlSecNssX509FindCert(CERTCertList* certsList, const xmlChar *subjectName,
issuerAndSN.derIssuer.data = nameitem->data;
issuerAndSN.derIssuer.len = nameitem->len;
-
/* TBD: serial num can be arbitrarily long */
if(PR_sscanf((char *)issuerSerial, "%llu", &issuerSN) != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -501,6 +504,7 @@ xmlSecNssX509FindCert(CERTCertList* certsList, const xmlChar *subjectName,
"PR_sscanf",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"error code=%d", PR_GetError());
+ SECITEM_FreeItem(&issuerAndSN.serialNumber, PR_FALSE);
goto done;
}
@@ -511,6 +515,7 @@ xmlSecNssX509FindCert(CERTCertList* certsList, const xmlChar *subjectName,
"xmlSecNssNumToItem",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"error code=%d", PR_GetError());
+ SECITEM_FreeItem(&issuerAndSN.serialNumber, PR_FALSE);
goto done;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]