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

Fix things so DH_free() will be no-op when passed NULL, like RSA_free() and

DSA_free(): this was causing crashes when for example an attempt was made
to handle a (currently) unsupported DH public key. Also X509_PUBKEY_set()i
wasn't checking errors from d2i_PublicKey().
parent e416ad97
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -5,6 +5,9 @@

 Changes between 0.9.1c and 0.9.2

  *) Make DH_free() tolerate being passed a NULL pointer (like RSA_free() and
     DSA_free()). Make X509_PUBKEY_set() check for errors in d2i_PublicKey().

  *) X509_name_add_entry() freed the wrong thing after an error.
     [Arne Ansper <arne@ats.cyber.ee>]

@@ -23,7 +26,7 @@
     [Ralf S. Engelschall]

  *) 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.
     X509_PUBKEY_get() et al. Also allow x509.c to handle netscape extensions.
     [Steve Henson]

  *) Fix reference counting in X509_PUBKEY_get(). This makes
+1 −1
Original line number Diff line number Diff line
@@ -183,7 +183,7 @@ EVP_PKEY *pkey;
		goto err;
		}

	i=i2d_PublicKey(pkey,NULL);
	if ((i=i2d_PublicKey(pkey,NULL)) <= 0) goto err;
	if ((s=(unsigned char *)Malloc(i+1)) == NULL) goto err;
	p=s;
	i2d_PublicKey(pkey,&p);
+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ DH *DH_new()
void DH_free(r)
DH *r;
	{
	if(r == NULL) return;
	if (r->p != NULL) BN_clear_free(r->p);
	if (r->g != NULL) BN_clear_free(r->g);
	if (r->pub_key != NULL) BN_clear_free(r->pub_key);