From e6e28318e7a4a4846d7dc98d73645e30e6e966f6 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sat, 21 Jul 2007 13:43:34 +0000 Subject: [PATCH] Fixed public key free. --- lib/silcssh/silcssh.c | 4 +++- lib/silcssh/tests/test_silcssh.c | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/silcssh/silcssh.c b/lib/silcssh/silcssh.c index 818a0fa2..6cb849fc 100644 --- a/lib/silcssh/silcssh.c +++ b/lib/silcssh/silcssh.c @@ -251,7 +251,7 @@ SilcBool silc_ssh_generate_key(const char *algorithm, } if (subject) - silc_ssh_public_key_add_field(pubkey, "Subject", strdup(subject)); + silc_ssh_public_key_add_field(pubkey, "Subject", subject); return TRUE; } @@ -383,6 +383,8 @@ void silc_ssh_public_key_free(SilcSshPublicKey public_key) { if (public_key->fields) silc_hash_table_free(public_key->fields); + public_key->pkcs->public_key_free(public_key->pkcs, + public_key->public_key); silc_free(public_key); } diff --git a/lib/silcssh/tests/test_silcssh.c b/lib/silcssh/tests/test_silcssh.c index 7362c3df..e64d2e89 100644 --- a/lib/silcssh/tests/test_silcssh.c +++ b/lib/silcssh/tests/test_silcssh.c @@ -37,6 +37,8 @@ int main(int argc, char **argv) if (!silc_pkcs_save_private_key("privkey.prv", private_key, "testi", 5, SILC_PKCS_FILE_BASE64, rng)) goto err; + silc_pkcs_public_key_free(public_key); + silc_pkcs_private_key_free(private_key); SILC_LOG_DEBUG(("Load public key")); if (!silc_pkcs_load_public_key("pubkey.pub", SILC_PKCS_ANY, &public_key)) @@ -51,6 +53,7 @@ int main(int argc, char **argv) if (!silc_pkcs_load_private_key("privkey.prv", "testi", 5, SILC_PKCS_ANY, &private_key)) goto err; + silc_pkcs_private_key_free(private_key); SILC_LOG_DEBUG(("Save as OpenSSH public key")); ssh_pubkey = silc_pkcs_public_key_get_pkcs(SILC_PKCS_SSH2, public_key); @@ -58,13 +61,16 @@ int main(int argc, char **argv) if (!silc_pkcs_save_public_key("pubkey_openssh.pub", public_key, SILC_PKCS_FILE_BASE64)) goto err; + silc_pkcs_public_key_free(public_key); SILC_LOG_DEBUG(("Load public key")); if (!silc_pkcs_load_public_key("pubkey_openssh.pub", SILC_PKCS_SSH2, &public_key)) goto err; + silc_pkcs_public_key_free(public_key); silc_rng_free(rng); + silc_crypto_uninit(); success = TRUE; -- 2.24.0