Skip to content

Commit d870683

Browse files
committed
backport c01943b into 5.6
1 parent 48d71af commit d870683

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

ext/openssl/openssl.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1613,7 +1613,7 @@ PHP_FUNCTION(openssl_spki_export)
16131613

16141614
EVP_PKEY *pkey = NULL;
16151615
NETSCAPE_SPKI *spki = NULL;
1616-
BIO *out = BIO_new(BIO_s_mem());
1616+
BIO *out = NULL;
16171617

16181618
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &spkstr, &spkstr_len) == FAILURE) {
16191619
return;
@@ -1640,8 +1640,13 @@ PHP_FUNCTION(openssl_spki_export)
16401640
goto cleanup;
16411641
}
16421642

1643-
out = BIO_new_fp(stdout, BIO_NOCLOSE);
1644-
PEM_write_bio_PUBKEY(out, pkey);
1643+
out = BIO_new(BIO_s_mem());
1644+
if (out && PEM_write_bio_PUBKEY(out, pkey)) {
1645+
BUF_MEM *bio_buf;
1646+
1647+
BIO_get_mem_ptr(out, &bio_buf);
1648+
RETVAL_STRINGL((char *)bio_buf->data, bio_buf->length, 0);
1649+
}
16451650
goto cleanup;
16461651

16471652
cleanup:

0 commit comments

Comments
 (0)