diff options
Diffstat (limited to 'ext/openssl/openssl.c')
-rw-r--r-- | ext/openssl/openssl.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 4abb11bf0c..3721a870c5 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -1676,10 +1676,11 @@ static X509 * php_openssl_x509_from_zval(zval * val, int makeresource, zend_reso if (!what) { return NULL; } - /* this is so callers can decide if they should free the X509 */ if (resourceval) { *resourceval = res; - Z_ADDREF_P(val); + if (makeresource) { + Z_ADDREF_P(val); + } } return (X509*)what; } @@ -3225,7 +3226,9 @@ static X509_REQ * php_openssl_csr_from_zval(zval * val, int makeresource, zend_r if (what) { if (resourceval) { *resourceval = res; - Z_ADDREF_P(val); + if (makeresource) { + Z_ADDREF_P(val); + } } return (X509_REQ*)what; } |