From e0670973d5c0b837eb5a9f1670e47107f466fbc7 Mon Sep 17 00:00:00 2001 From: Yuchi Date: Sun, 5 Feb 2017 19:33:47 -0500 Subject: mem leak on error path and error propagation fix Reviewed-by: Richard Levitte Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/2559) --- apps/ts.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'apps/ts.c') diff --git a/apps/ts.c b/apps/ts.c index 6c0adb1423..0db6b509f8 100644 --- a/apps/ts.c +++ b/apps/ts.c @@ -887,9 +887,15 @@ static TS_VERIFY_CTX *create_verify_ctx(const char *data, const char *digest, goto err; f = TS_VFY_VERSION | TS_VFY_SIGNER; if (data != NULL) { + BIO *out = NULL; + f |= TS_VFY_DATA; - if (TS_VERIFY_CTX_set_data(ctx, BIO_new_file(data, "rb")) == NULL) + if ((out = BIO_new_file(data, "rb")) == NULL) + goto err; + if (TS_VERIFY_CTX_set_data(ctx, out) == NULL) { + BIO_free_all(out); goto err; + } } else if (digest != NULL) { long imprint_len; unsigned char *hexstr = OPENSSL_hexstr2buf(digest, &imprint_len); -- cgit v1.2.1