diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2015-11-09 18:43:03 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2015-11-09 21:56:58 +0100 |
commit | 1886838a08e0b884f47a9098e5c3241f86354fa3 (patch) | |
tree | bfda2b2a03ffaca02b44b0bab3eca139a0a996cf | |
parent | b7c234a0ad47f99a63fbe9d4f4a1188dbbd8c206 (diff) | |
download | gnutls-1886838a08e0b884f47a9098e5c3241f86354fa3.tar.gz |
certtool: make sure that pkcs12 structures are deinitialized
-rw-r--r-- | src/certtool.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/certtool.c b/src/certtool.c index d94af73ecb..581818dcd7 100644 --- a/src/certtool.c +++ b/src/certtool.c @@ -3175,6 +3175,7 @@ void generate_pkcs12(common_info_st * cinfo) gnutls_strerror(result)); exit(1); } + gnutls_pkcs12_bag_deinit(bag); } /* Add the ca cert, if any */ @@ -3208,6 +3209,7 @@ void generate_pkcs12(common_info_st * cinfo) gnutls_strerror(result)); exit(1); } + gnutls_pkcs12_bag_deinit(bag); } for (i = 0; i < nkeys; i++) { @@ -3280,6 +3282,7 @@ void generate_pkcs12(common_info_st * cinfo) gnutls_strerror(result)); exit(1); } + gnutls_pkcs12_bag_deinit(kbag); } result = gnutls_pkcs12_generate_mac(pkcs12, pass); @@ -3299,7 +3302,11 @@ void generate_pkcs12(common_info_st * cinfo) } fwrite(lbuffer, 1, size, outfile); + for (i=0;i<ncrts;i++) + gnutls_x509_crt_deinit(crts[i]); gnutls_free(crts); + gnutls_x509_crt_deinit(ca_crt); + gnutls_pkcs12_deinit(pkcs12); } static const char *BAGTYPE(gnutls_pkcs12_bag_type_t x) @@ -3526,6 +3533,7 @@ void pkcs12_info(common_info_st * cinfo) fprintf(outfile, "\tSalt size: %u\n", salt_size); fprintf(outfile, "\tIteration count: %u\n\n", mac_iter); } + gnutls_free(mac_oid); pass = get_password(cinfo, NULL, 0); @@ -3544,8 +3552,10 @@ void pkcs12_info(common_info_st * cinfo) } result = gnutls_pkcs12_get_bag(pkcs12, indx, bag); - if (result < 0) + if (result < 0) { + gnutls_pkcs12_bag_deinit(bag); break; + } result = gnutls_pkcs12_bag_get_count(bag); if (result < 0) { @@ -3590,6 +3600,8 @@ void pkcs12_info(common_info_st * cinfo) gnutls_pkcs12_bag_deinit(bag); } + gnutls_pkcs12_deinit(pkcs12); + if (fail) { fprintf(stderr, "There were errors parsing the structure\n"); |