projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix memory leak with -issuer option.
[openssl.git]
/
apps
/
ocsp.c
diff --git
a/apps/ocsp.c
b/apps/ocsp.c
index 0f8ddcc33ffe8e9211449908ef0b039aa4a05425..982eddf20cccaacdf4033441d6d63802958c9e5d 100644
(file)
--- a/
apps/ocsp.c
+++ b/
apps/ocsp.c
@@
-404,13
+404,14
@@
int ocsp_main(int argc, char **argv)
path = opt_arg();
break;
case OPT_ISSUER:
path = opt_arg();
break;
case OPT_ISSUER:
- X509_free(issuer);
issuer = load_cert(opt_arg(), FORMAT_PEM,
NULL, NULL, "issuer certificate");
if (issuer == NULL)
goto end;
issuer = load_cert(opt_arg(), FORMAT_PEM,
NULL, NULL, "issuer certificate");
if (issuer == NULL)
goto end;
- if ((issuers = sk_X509_new_null()) == NULL)
- goto end;
+ if (issuers == NULL) {
+ if ((issuers = sk_X509_new_null()) == NULL)
+ goto end;
+ }
sk_X509_push(issuers, issuer);
break;
case OPT_CERT:
sk_X509_push(issuers, issuer);
break;
case OPT_CERT:
@@
-750,6
+751,7
@@
int ocsp_main(int argc, char **argv)
EVP_PKEY_free(key);
EVP_PKEY_free(rkey);
X509_free(cert);
EVP_PKEY_free(key);
EVP_PKEY_free(rkey);
X509_free(cert);
+ sk_X509_pop_free(issuers, X509_free);
X509_free(rsigner);
X509_free(rca_cert);
free_index(rdb);
X509_free(rsigner);
X509_free(rca_cert);
free_index(rdb);