Fix some more memory leaks with TXT_DB_insert.
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2684)
This commit is contained in:
parent
9ad52c562a
commit
0fbaef9e64
2 changed files with 13 additions and 9 deletions
18
apps/ca.c
18
apps/ca.c
|
@ -2062,19 +2062,26 @@ static int do_revoke(X509 *x509, CA_DB *db, REVINFO_TYPE rev_type,
|
|||
row[DB_rev_date] = NULL;
|
||||
row[DB_file] = OPENSSL_strdup("unknown");
|
||||
|
||||
irow = app_malloc(sizeof(*irow) * (DB_NUMBER + 1), "row ptr");
|
||||
for (i = 0; i < DB_NUMBER; i++) {
|
||||
irow[i] = row[i];
|
||||
row[i] = NULL;
|
||||
if (row[DB_type] == NULL || row[DB_file] == NULL) {
|
||||
BIO_printf(bio_err, "Memory allocation failure\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
irow = app_malloc(sizeof(*irow) * (DB_NUMBER + 1), "row ptr");
|
||||
for (i = 0; i < DB_NUMBER; i++)
|
||||
irow[i] = row[i];
|
||||
irow[DB_NUMBER] = NULL;
|
||||
|
||||
if (!TXT_DB_insert(db->db, irow)) {
|
||||
BIO_printf(bio_err, "failed to update database\n");
|
||||
BIO_printf(bio_err, "TXT_DB error number %ld\n", db->db->error);
|
||||
OPENSSL_free(irow);
|
||||
goto end;
|
||||
}
|
||||
|
||||
for (i = 0; i < DB_NUMBER; i++)
|
||||
row[i] = NULL;
|
||||
|
||||
/* Revoke Certificate */
|
||||
if (rev_type == REV_VALID)
|
||||
ok = 1;
|
||||
|
@ -2108,9 +2115,8 @@ static int do_revoke(X509 *x509, CA_DB *db, REVINFO_TYPE rev_type,
|
|||
}
|
||||
ok = 1;
|
||||
end:
|
||||
for (i = 0; i < DB_NUMBER; i++) {
|
||||
for (i = 0; i < DB_NUMBER; i++)
|
||||
OPENSSL_free(row[i]);
|
||||
}
|
||||
return (ok);
|
||||
}
|
||||
|
||||
|
|
|
@ -92,10 +92,8 @@ static int update_index(CA_DB *db, char **row)
|
|||
int i;
|
||||
|
||||
irow = app_malloc(sizeof(*irow) * (DB_NUMBER + 1), "row pointers");
|
||||
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)) {
|
||||
|
|
Loading…
Reference in a new issue