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.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index 766178b8f7..c1aa19679e 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -2941,6 +2941,7 @@ PHP_FUNCTION(openssl_pkcs12_read)
if (d2i_PKCS12_bio(bio_in, &p12) && PKCS12_parse(p12, pass, &pkey, &cert, &ca)) {
BIO * bio_out;
+ int cert_num;
zval_dtor(zout);
array_init(zout);
@@ -2971,10 +2972,11 @@ PHP_FUNCTION(openssl_pkcs12_read)
BIO_free(bio_out);
}
- if (ca && sk_X509_num(ca)) {
+ cert_num = sk_X509_num(ca);
+ if (ca && cert_num) {
array_init(&zextracerts);
- for (i = 0; i < sk_X509_num(ca); i++) {
+ for (i = 0; i < cert_num; i++) {
zval zextracert;
X509* aCA = sk_X509_pop(ca);
if (!aCA) break;