diff options
Diffstat (limited to 'ext/openssl/openssl.c')
-rw-r--r-- | ext/openssl/openssl.c | 6 |
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; |