summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--ext/openssl/ossl_pkey.c1
-rw-r--r--ext/openssl/ossl_x509cert.c1
3 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b9d1f32911d..e5291011200 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Mon Nov 14 22:06:02 2011 Tanaka Akira <akr@fsij.org>
+
+ * ext/openssl/ossl_pkey.c (ossl_pkey_new_from_file): set close-on-exec
+ flag.
+
+ * ext/openssl/ossl_x509cert.c (rb_fd_fix_cloexec): ditto.
+
Mon Nov 14 14:54:17 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* bignum.c (rb_big2ull): fix 32bit platform breakage. we must
diff --git a/ext/openssl/ossl_pkey.c b/ext/openssl/ossl_pkey.c
index cb0c320a0ce..15a2eed8d2d 100644
--- a/ext/openssl/ossl_pkey.c
+++ b/ext/openssl/ossl_pkey.c
@@ -111,6 +111,7 @@ ossl_pkey_new_from_file(VALUE filename)
if (!(fp = fopen(RSTRING_PTR(filename), "r"))) {
ossl_raise(ePKeyError, "%s", strerror(errno));
}
+ rb_fd_fix_cloexec(fileno(fp));
pkey = PEM_read_PrivateKey(fp, NULL, ossl_pem_passwd_cb, NULL);
fclose(fp);
diff --git a/ext/openssl/ossl_x509cert.c b/ext/openssl/ossl_x509cert.c
index b71025e1456..3093d60f1f8 100644
--- a/ext/openssl/ossl_x509cert.c
+++ b/ext/openssl/ossl_x509cert.c
@@ -66,6 +66,7 @@ ossl_x509_new_from_file(VALUE filename)
if (!(fp = fopen(RSTRING_PTR(filename), "r"))) {
ossl_raise(eX509CertError, "%s", strerror(errno));
}
+ rb_fd_fix_cloexec(fileno(fp));
x509 = PEM_read_X509(fp, NULL, NULL, NULL);
/*
* prepare for DER...