summaryrefslogtreecommitdiff
path: root/src/certtool-common.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2015-08-12 22:48:45 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2015-08-12 22:51:27 +0200
commit024c07cc42f6cc927c743b3cec8fa9c6b84dc029 (patch)
treecc5b680f528331c105379ee04500fccbc34679fe /src/certtool-common.c
parenta32cc8ae38c3a03398de898fa72cba503026a181 (diff)
downloadgnutls-024c07cc42f6cc927c743b3cec8fa9c6b84dc029.tar.gz
certtool: eliminated memory leaks due to new cert loading code
Diffstat (limited to 'src/certtool-common.c')
-rw-r--r--src/certtool-common.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/certtool-common.c b/src/certtool-common.c
index 7cf5581d20..e092ef20b6 100644
--- a/src/certtool-common.c
+++ b/src/certtool-common.c
@@ -358,11 +358,19 @@ load_x509_private_key(int mand, common_info_st * info)
gnutls_x509_crt_t load_cert(int mand, common_info_st * info)
{
gnutls_x509_crt_t *crt;
- size_t size;
+ gnutls_x509_crt_t ret_crt;
+ size_t size, i;
crt = load_cert_list(mand, &size, info);
+ if (crt) {
+ ret_crt = crt[0];
+ for (i=1;i<size;i++)
+ gnutls_x509_crt_deinit(crt[i]);
+ gnutls_free(crt);
+ return ret_crt;
+ }
- return crt ? crt[0] : NULL;
+ return NULL;
}
/* Loads a certificate list