aboutsummaryrefslogtreecommitdiffstats
path: root/ext/openssl/ossl_ns_spki.c
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-08-24 21:57:52 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-10-03 15:02:15 +0900
commitcf2d4f43a98bdc37224460a0b1851a0dc7ced2e8 (patch)
tree82755c6e3a29e6359891cc4837977ee2f3155d94 /ext/openssl/ossl_ns_spki.c
parent0954e9316fdfdda920561ea362f235c10ceebc04 (diff)
downloadruby-openssl-cf2d4f43a98bdc37224460a0b1851a0dc7ced2e8.tar.gz
Avoid memory leak on rb_str_new()
Use ossl_membio2str() to convert a mem BIO to Ruby String. This fixes possible memory leak on rb_str_new() failure, and also reduces code.
Diffstat (limited to 'ext/openssl/ossl_ns_spki.c')
-rw-r--r--ext/openssl/ossl_ns_spki.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/ext/openssl/ossl_ns_spki.c b/ext/openssl/ossl_ns_spki.c
index 2f7845b6..98f6552e 100644
--- a/ext/openssl/ossl_ns_spki.c
+++ b/ext/openssl/ossl_ns_spki.c
@@ -159,8 +159,6 @@ ossl_spki_print(VALUE self)
{
NETSCAPE_SPKI *spki;
BIO *out;
- BUF_MEM *buf;
- VALUE str;
GetSPKI(self, spki);
if (!(out = BIO_new(BIO_s_mem()))) {
@@ -170,11 +168,8 @@ ossl_spki_print(VALUE self)
BIO_free(out);
ossl_raise(eSPKIError, NULL);
}
- BIO_get_mem_ptr(out, &buf);
- str = rb_str_new(buf->data, buf->length);
- BIO_free(out);
- return str;
+ return ossl_membio2str(out);
}
/*