xmlsec r1001 - in trunk: . src/mscrypto src/nss src/openssl



Author: aleksey
Date: Tue Jun 10 16:28:34 2008
New Revision: 1001
URL: http://svn.gnome.org/viewvc/xmlsec?rev=1001&view=rev

Log:
fix crash in the error reporting

Modified:
   trunk/ChangeLog
   trunk/src/mscrypto/x509.c
   trunk/src/nss/x509.c
   trunk/src/openssl/x509.c

Modified: trunk/src/mscrypto/x509.c
==============================================================================
--- trunk/src/mscrypto/x509.c	(original)
+++ trunk/src/mscrypto/x509.c	Tue Jun 10 16:28:34 2008
@@ -1267,9 +1267,6 @@
 
     cert = xmlSecMSCryptoX509StoreFindCert(x509Store, NULL, issuerName, issuerSerial, NULL, keyInfoCtx);
     if(cert == NULL){
-	xmlFree(issuerSerial);
-	xmlFree(issuerName);
-
 	if((keyInfoCtx->flags & XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT) != 0) {
 	    xmlSecError(XMLSEC_ERRORS_HERE,
 			xmlSecErrorsSafeString(xmlSecKeyDataGetName(data)),
@@ -1278,8 +1275,13 @@
 			"issuerName=%s;issuerSerial=%s",
 			xmlSecErrorsSafeString(issuerName), 
 			xmlSecErrorsSafeString(issuerSerial));
+	    xmlFree(issuerSerial);
+	    xmlFree(issuerName);
 	    return(-1);
 	}
+
+	xmlFree(issuerSerial);
+	xmlFree(issuerName);
 	return(0);    
     }
 

Modified: trunk/src/nss/x509.c
==============================================================================
--- trunk/src/nss/x509.c	(original)
+++ trunk/src/nss/x509.c	Tue Jun 10 16:28:34 2008
@@ -1137,7 +1137,6 @@
 
     cert = xmlSecNssX509StoreFindCert(x509Store, subject, NULL, NULL, NULL, keyInfoCtx);
     if(cert == NULL){
-	xmlFree(subject);
 
 	if((keyInfoCtx->flags & XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT) != 0) {
 	    xmlSecError(XMLSEC_ERRORS_HERE,
@@ -1146,8 +1145,11 @@
 			XMLSEC_ERRORS_R_CERT_NOT_FOUND,
 			"subject=%s", 
 			xmlSecErrorsSafeString(subject));
+	    xmlFree(subject);
 	    return(-1);
 	}
+
+	xmlFree(subject);
 	return(0);
     }
 
@@ -1298,9 +1300,6 @@
 
     cert = xmlSecNssX509StoreFindCert(x509Store, NULL, issuerName, issuerSerial, NULL, keyInfoCtx);
     if(cert == NULL){
-	xmlFree(issuerSerial);
-	xmlFree(issuerName);
-
 	if((keyInfoCtx->flags & XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT) != 0) {
 	    xmlSecError(XMLSEC_ERRORS_HERE,
 		        xmlSecErrorsSafeString(xmlSecKeyDataGetName(data)),
@@ -1309,8 +1308,13 @@
 			"issuerName=%s;issuerSerial=%s",
 		        xmlSecErrorsSafeString(issuerName), 
 			xmlSecErrorsSafeString(issuerSerial));
+	    xmlFree(issuerSerial);
+	    xmlFree(issuerName);
 	    return(-1);
 	}
+
+	xmlFree(issuerSerial);
+	xmlFree(issuerName);
 	return(0);    
     }
 

Modified: trunk/src/openssl/x509.c
==============================================================================
--- trunk/src/openssl/x509.c	(original)
+++ trunk/src/openssl/x509.c	Tue Jun 10 16:28:34 2008
@@ -1084,7 +1084,6 @@
 
     cert = xmlSecOpenSSLX509StoreFindCert(x509Store, subject, NULL, NULL, NULL, keyInfoCtx);
     if(cert == NULL){
-	xmlFree(subject);
 
 	if((keyInfoCtx->flags & XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT) != 0) {
 	    xmlSecError(XMLSEC_ERRORS_HERE,
@@ -1093,8 +1092,11 @@
 			XMLSEC_ERRORS_R_CERT_NOT_FOUND,
 			"subject=%s", 
 			xmlSecErrorsSafeString(subject));
+    	    xmlFree(subject);
 	    return(-1);
 	}
+
+	xmlFree(subject);	
 	return(0);
     }
 
@@ -1105,6 +1107,7 @@
 		    "X509_dup",
 		    XMLSEC_ERRORS_R_CRYPTO_FAILED,
 		    XMLSEC_ERRORS_NO_MESSAGE);
+
 	xmlFree(subject);
 	return(-1);
     }
@@ -1257,8 +1260,6 @@
 
     cert = xmlSecOpenSSLX509StoreFindCert(x509Store, NULL, issuerName, issuerSerial, NULL, keyInfoCtx);
     if(cert == NULL){
-	xmlFree(issuerSerial);
-	xmlFree(issuerName);
 
 	if((keyInfoCtx->flags & XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT) != 0) {
 	    xmlSecError(XMLSEC_ERRORS_HERE,
@@ -1268,8 +1269,12 @@
 			"issuerName=%s;issuerSerial=%s",
 		        xmlSecErrorsSafeString(issuerName), 
 			xmlSecErrorsSafeString(issuerSerial));
+    	    xmlFree(issuerSerial);
+	    xmlFree(issuerName);
 	    return(-1);
 	}
+	xmlFree(issuerSerial);
+	xmlFree(issuerName);
 	return(0);    
     }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]