aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFdaSilvaYY <fdasilvayy@gmail.com>2016-01-29 19:53:28 +0100
committerRich Salz <rsalz@openssl.org>2016-02-27 17:05:32 -0500
commit7bcdf4ef78270c9818fde45816102c1b1288b7c7 (patch)
tree9a71705144d520162e565a47d99e70b9e42e63a7
parente9cf5f03666bb82f0184e4f013702d0b164afdca (diff)
downloadopenssl-7bcdf4ef78270c9818fde45816102c1b1288b7c7.tar.gz
Fix two possible leaks
Backport of 98637bd Reviewed-by: Kurt Roeckx <kurt@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
-rw-r--r--crypto/dso/dso_lib.c1
-rw-r--r--crypto/engine/eng_dyn.c4
2 files changed, 4 insertions, 1 deletions
diff --git a/crypto/dso/dso_lib.c b/crypto/dso/dso_lib.c
index 3312450eae..2beb7c1ba5 100644
--- a/crypto/dso/dso_lib.c
+++ b/crypto/dso/dso_lib.c
@@ -122,6 +122,7 @@ DSO *DSO_new_method(DSO_METHOD *meth)
ret->meth = meth;
ret->references = 1;
if ((ret->meth->init != NULL) && !ret->meth->init(ret)) {
+ sk_void_free(ret->meth_data);
OPENSSL_free(ret);
ret = NULL;
}
diff --git a/crypto/engine/eng_dyn.c b/crypto/engine/eng_dyn.c
index 3169b09ad8..40f30e9d58 100644
--- a/crypto/engine/eng_dyn.c
+++ b/crypto/engine/eng_dyn.c
@@ -243,8 +243,10 @@ static int dynamic_set_data_ctx(ENGINE *e, dynamic_data_ctx **ctx)
* If we lost the race to set the context, c is non-NULL and *ctx is the
* context of the thread that won.
*/
- if (c)
+ if (c) {
+ sk_OPENSSL_STRING_free(c->dirs);
OPENSSL_free(c);
+ }
return 1;
}