mirror of
https://github.com/openssl/openssl.git
synced 2025-04-18 20:40:45 +08:00
Fix memory leaks in CA related functions.
Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4700)
This commit is contained in:
parent
c4fa1f7fc0
commit
aebd0e5ca1
@ -934,10 +934,13 @@ end_of_options:
|
||||
if (j > 0) {
|
||||
total_done++;
|
||||
BIO_printf(bio_err, "\n");
|
||||
if (!BN_add_word(serial, 1))
|
||||
if (!BN_add_word(serial, 1)) {
|
||||
X509_free(x);
|
||||
goto end;
|
||||
}
|
||||
if (!sk_X509_push(cert_sk, x)) {
|
||||
BIO_printf(bio_err, "Memory allocation failure\n");
|
||||
X509_free(x);
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
@ -225,6 +225,7 @@ static int check(X509_STORE *ctx, const char *file,
|
||||
|
||||
X509_STORE_set_flags(ctx, vflags);
|
||||
if (!X509_STORE_CTX_init(csc, ctx, x, uchain)) {
|
||||
X509_STORE_CTX_free(csc);
|
||||
printf("error %s: X.509 store context initialization failed\n",
|
||||
(file == NULL) ? "stdin" : file);
|
||||
goto end;
|
||||
|
@ -204,12 +204,14 @@ CONF_VALUE *_CONF_new_section(CONF *conf, const char *section)
|
||||
v->value = (char *)sk;
|
||||
|
||||
vv = lh_CONF_VALUE_insert(conf->data, v);
|
||||
if (vv != NULL)
|
||||
if (vv != NULL || lh_CONF_VALUE_error(conf->data) > 0)
|
||||
goto err;
|
||||
return v;
|
||||
|
||||
err:
|
||||
sk_CONF_VALUE_free(sk);
|
||||
if (v != NULL)
|
||||
OPENSSL_free(v->section);
|
||||
OPENSSL_free(v);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -154,8 +154,10 @@ void engine_cleanup_add_last(ENGINE_CLEANUP_CB *cb)
|
||||
if (!int_cleanup_check(1))
|
||||
return;
|
||||
item = int_cleanup_item(cb);
|
||||
if (item)
|
||||
sk_ENGINE_CLEANUP_ITEM_push(cleanup_stack, item);
|
||||
if (item != NULL) {
|
||||
if (sk_ENGINE_CLEANUP_ITEM_push(cleanup_stack, item) <= 0)
|
||||
OPENSSL_free(item);
|
||||
}
|
||||
}
|
||||
|
||||
/* The API function that performs all cleanup */
|
||||
|
Loading…
x
Reference in New Issue
Block a user