From 9eff906a024578f0ea0bf8b4e318544d70074537 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Tue, 21 Jan 2020 16:17:25 +0100 Subject: Fix #79145: openssl memory leak We must increase the refcount of `return_value` only if `cert` is a resource; this is already done in `php_openssl_evp_from_zval()`, though. --- ext/openssl/openssl.c | 2 -- ext/openssl/tests/bug79145.phpt | 26 ++++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 ext/openssl/tests/bug79145.phpt (limited to 'ext/openssl') diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 4cc3bd5446..7e935ae8ec 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -4691,7 +4691,6 @@ PHP_FUNCTION(openssl_pkey_get_public) RETURN_FALSE; } ZVAL_RES(return_value, res); - Z_ADDREF_P(return_value); } /* }}} */ @@ -4733,7 +4732,6 @@ PHP_FUNCTION(openssl_pkey_get_private) RETURN_FALSE; } ZVAL_RES(return_value, res); - Z_ADDREF_P(return_value); } /* }}} */ diff --git a/ext/openssl/tests/bug79145.phpt b/ext/openssl/tests/bug79145.phpt new file mode 100644 index 0000000000..348831189b --- /dev/null +++ b/ext/openssl/tests/bug79145.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #79145 (openssl memory leak) +--SKIPIF-- + +--FILE-- + +--EXPECT-- +bool(true) -- cgit v1.2.1