saprasad / rpms / openssl

Forked from rpms/openssl 3 years ago
Clone
5b761f5
diff -up openssl-1.0.0-beta4/crypto/asn1/d2i_pu.c.backports openssl-1.0.0-beta4/crypto/asn1/d2i_pu.c
5b761f5
--- openssl-1.0.0-beta4/crypto/asn1/d2i_pu.c.backports	2008-11-12 04:57:49.000000000 +0100
5b761f5
+++ openssl-1.0.0-beta4/crypto/asn1/d2i_pu.c	2009-11-18 14:11:14.000000000 +0100
5b761f5
@@ -87,9 +87,13 @@ EVP_PKEY *d2i_PublicKey(int type, EVP_PK
5b761f5
 		}
5b761f5
 	else	ret= *a;
5b761f5
 
5b761f5
-	ret->save_type=type;
5b761f5
-	ret->type=EVP_PKEY_type(type);
5b761f5
-	switch (ret->type)
5b761f5
+	if (!EVP_PKEY_set_type(ret, type))
5b761f5
+		{
5b761f5
+		ASN1err(ASN1_F_D2I_PUBLICKEY,ERR_R_EVP_LIB);
5b761f5
+		goto err;
5b761f5
+		}
5b761f5
+
5b761f5
+	switch (EVP_PKEY_id(ret))
5b761f5
 		{
5b761f5
 #ifndef OPENSSL_NO_RSA
5b761f5
 	case EVP_PKEY_RSA:
5b761f5
diff -up openssl-1.0.0-beta4/crypto/evp/p_lib.c.backports openssl-1.0.0-beta4/crypto/evp/p_lib.c
5b761f5
--- openssl-1.0.0-beta4/crypto/evp/p_lib.c.backports	2006-07-04 22:27:44.000000000 +0200
5b761f5
+++ openssl-1.0.0-beta4/crypto/evp/p_lib.c	2009-11-18 14:11:26.000000000 +0100
5b761f5
@@ -220,7 +220,10 @@ static int pkey_set_type(EVP_PKEY *pkey,
5b761f5
 #ifndef OPENSSL_NO_ENGINE
5b761f5
 		/* If we have an ENGINE release it */
5b761f5
 		if (pkey->engine)
5b761f5
+			{
5b761f5
 			ENGINE_finish(pkey->engine);
5b761f5
+			pkey->engine = NULL;
5b761f5
+			}
5b761f5
 #endif
5b761f5
 		}
5b761f5
 	if (str)
5b761f5
diff -up openssl-1.0.0-beta4/crypto/x509/x509_vfy.c.backports openssl-1.0.0-beta4/crypto/x509/x509_vfy.c
5b761f5
--- openssl-1.0.0-beta4/crypto/x509/x509_vfy.c.backports	2009-10-31 20:21:47.000000000 +0100
5b761f5
+++ openssl-1.0.0-beta4/crypto/x509/x509_vfy.c	2009-11-18 14:11:31.000000000 +0100
5b761f5
@@ -1727,6 +1727,7 @@ int X509_cmp_time(const ASN1_TIME *ctm, 
5b761f5
 			offset= -offset;
5b761f5
 		}
5b761f5
 	atm.type=ctm->type;
5b761f5
+	atm.flags = 0;
5b761f5
 	atm.length=sizeof(buff2);
5b761f5
 	atm.data=(unsigned char *)buff2;
5b761f5