summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2015-11-09 18:43:03 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2015-11-09 21:56:58 +0100
commit1886838a08e0b884f47a9098e5c3241f86354fa3 (patch)
treebfda2b2a03ffaca02b44b0bab3eca139a0a996cf
parentb7c234a0ad47f99a63fbe9d4f4a1188dbbd8c206 (diff)
downloadgnutls-1886838a08e0b884f47a9098e5c3241f86354fa3.tar.gz
certtool: make sure that pkcs12 structures are deinitialized
-rw-r--r--src/certtool.c14
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");