Fix reference counting.

This commit is contained in:
Ben Laurie 1999-01-02 19:04:27 +00:00
parent c2245b68f5
commit cdbb8c2f26
2 changed files with 11 additions and 2 deletions

View file

@ -5,11 +5,15 @@
Changes between 0.9.1c and 0.9.2 Changes between 0.9.1c and 0.9.2
*) Fix reference counting in X509_PUBKEY_get(). This makes
demos/maurice/example2.c work, amongst others, probably.
[Steve Henson and Ben Laurie]
*) First cut of a cleanup for apps/. First the `ssleay' program is now named *) First cut of a cleanup for apps/. First the `ssleay' program is now named
`openssl' and second, the shortcut symlinks for the `openssl <command>' `openssl' and second, the shortcut symlinks for the `openssl <command>'
are no longer created. This way we have a single and consistent command are no longer created. This way we have a single and consistent command
line interface `openssl <command>', similar to `cvs <command>'. line interface `openssl <command>', similar to `cvs <command>'.
[Ralf S. Engelschall] [Ralf S. Engelschall, Paul Sutton and Ben Laurie]
*) ca.c: move test for DSA keys inside #ifndef NO_DSA. Make pubkey *) ca.c: move test for DSA keys inside #ifndef NO_DSA. Make pubkey
BIT STRING wrapper always have zero unused bits. BIT STRING wrapper always have zero unused bits.

View file

@ -222,7 +222,11 @@ X509_PUBKEY *key;
if (key == NULL) goto err; if (key == NULL) goto err;
if (key->pkey != NULL) return(key->pkey); if (key->pkey != NULL)
{
CRYPTO_add(&key->pkey->references,1,CRYPTO_LOCK_EVP_PKEY);
return(key->pkey);
}
if (key->public_key == NULL) goto err; if (key->public_key == NULL) goto err;
@ -252,6 +256,7 @@ X509_PUBKEY *key;
} }
#endif #endif
key->pkey=ret; key->pkey=ret;
CRYPTO_add(&ret->references,1,CRYPTO_LOCK_EVP_PKEY);
return(ret); return(ret);
err: err:
if (ret != NULL) if (ret != NULL)