Commit cfcf6453 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Make sure applications free up pkey structures and add netscape extension

handling to x509.c
parent cdbb8c2f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -5,6 +5,10 @@

 Changes between 0.9.1c and 0.9.2

  *) Fix the various library and apps files to free up pkeys obtained from
     EVP_PUBKEY_get() et al. Also allow x509.c to handle netscape extensions.
     [Steve Henson]

  *) Fix reference counting in X509_PUBKEY_get(). This makes
     demos/maurice/example2.c work, amongst others, probably.
     [Steve Henson and Ben Laurie]
+4 −1
Original line number Diff line number Diff line
@@ -663,7 +663,10 @@ loop:
			}

		i=X509_REQ_verify(req,pkey);
		if (tmp) pkey=NULL;
		if (tmp) {
			EVP_PKEY_free(pkey);
			pkey=NULL;
		}

		if (i < 0)
			{
+4 −0
Original line number Diff line number Diff line
@@ -305,6 +305,7 @@ bad:
		}

	ERR_load_crypto_strings();
	X509v3_add_netscape_extensions();

	if (!X509_STORE_set_default_paths(ctx))
		{
@@ -368,6 +369,7 @@ bad:
	                goto end;
	                }
		i=X509_REQ_verify(req,pkey);
		EVP_PKEY_free(pkey);
		if (i < 0)
			{
			BIO_printf(bio_err,"Signature verification error\n");
@@ -481,6 +483,7 @@ bad:
				else
					BIO_printf(STDout,"Wrong Algorithm type");
				BIO_printf(STDout,"\n");
				EVP_PKEY_free(pkey);
				}
			else
#endif
@@ -688,6 +691,7 @@ end:
	if (Upkey != NULL) EVP_PKEY_free(Upkey);
	if (CApkey != NULL) EVP_PKEY_free(CApkey);
	if (rq != NULL) X509_REQ_free(rq);
	X509v3_cleanup_extensions();
	EXIT(ret);
	}

+2 −0
Original line number Diff line number Diff line
@@ -138,6 +138,8 @@ X509_REQ *x;
#endif
		BIO_printf(bp,"%12sUnknown Public Key:\n","");

	EVP_PKEY_free(pkey);

	/* may not be */
	sprintf(str,"%8sAttributes:\n","");
	if (BIO_puts(bp,str) <= 0) goto err;
+2 −0
Original line number Diff line number Diff line
@@ -182,6 +182,8 @@ X509 *x;
#endif
		BIO_printf(bp,"%12sUnknown Public Key:\n","");

	EVP_PKEY_free(pkey);

	n=X509_get_ext_count(x);
	if (n > 0)
		{
Loading