summaryrefslogtreecommitdiff
path: root/ext/openssl/openssl.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/openssl/openssl.c')
-rw-r--r--ext/openssl/openssl.c9
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;
}