summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ext/openssl/ossl.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 3fa801b179..06b002cb30 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Wed Mar 5 11:58:30 2014 Nobuyoshi Nakada <[email protected]>
+
+ * ext/openssl/ossl.c (ossl_make_error): check NULL for unknown
+ error reasons with old OpenSSL, and insert a colon iff formatted
+ message is not empty.
+
Wed Mar 5 00:42:00 2014 Kazuki Tsujimoto <[email protected]>
* ext/pathname/lib/pathname.rb (Pathname#find): add "ignore_error"
diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c
index 614d2fa6f7..7f9105c117 100644
--- a/ext/openssl/ossl.c
+++ b/ext/openssl/ossl.c
@@ -312,10 +312,11 @@ ossl_make_error(VALUE exc, const char *fmt, va_list args)
else
msg = ERR_reason_error_string(e);
if (NIL_P(str)) {
- str = rb_str_new_cstr(msg);
+ if (msg) str = rb_str_new_cstr(msg);
}
else {
- rb_str_cat2(rb_str_cat2(str, ": "), msg);
+ if (RSTRING_LEN(str)) rb_str_cat2(str, ": ");
+ rb_str_cat2(str, msg ? msg : "(null)");
}
}
if (dOSSL == Qtrue){ /* show all errors on the stack */