diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2017-02-19 17:36:18 +0100 |
---|---|---|
committer | Rich Salz <rsalz@openssl.org> | 2017-02-21 14:36:40 -0500 |
commit | 646e6bd40e4ad069e075530a7531f1ac2a9e3fc0 (patch) | |
tree | 7775caf3fa38d83ad9b7b6822480bfca5d861fc4 /apps | |
parent | 1acdbb3eef4c992c9cebec3cbdf8104761aa7d63 (diff) |
Fix a few memleaks in TXT_DB.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2685)
Diffstat (limited to 'apps')
-rw-r--r-- | apps/ca.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -2126,10 +2126,8 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, goto err; } - for (i = 0; i < DB_NUMBER; i++) { + for (i = 0; i < DB_NUMBER; i++) irow[i] = row[i]; - row[i] = NULL; - } irow[DB_NUMBER] = NULL; if (!TXT_DB_insert(db->db, irow)) { @@ -2137,11 +2135,14 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, BIO_printf(bio_err, "TXT_DB error number %ld\n", db->db->error); goto err; } + irow = NULL; ok = 1; err: - for (i = 0; i < DB_NUMBER; i++) - if (row[i] != NULL) + if (irow != NULL) { + for (i = 0; i < DB_NUMBER; i++) OPENSSL_free(row[i]); + OPENSSL_free(irow); + } if (CAname != NULL) X509_NAME_free(CAname); |