summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-05-05 17:28:45 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-05-05 17:28:45 +0000
commit10685d4f71e49e6b13d0ec53f54907eb9888fd79 (patch)
treeb121bc07b744da167789e6dc4af51202a8477176
parentac5ffe0a19df7f373d699bce8a66f6154ad80182 (diff)
merge revision(s) 53322,53323: [Backport #11880]
* ext/win32ole/win32ole.c (ole_vstr2wc, ole_variant2val): fix blank string conversion. [Bug #11880] Thanks Akio Tajima for the patch! string conversion. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_3@54923 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--ext/win32ole/win32ole.c17
-rw-r--r--version.h2
3 files changed, 21 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index b3e374c244..a878b775ec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Fri May 6 02:28:31 2016 Masaki Suketa <masaki.suketa@nifty.ne.jp>
+
+ * ext/win32ole/win32ole.c (ole_vstr2wc, ole_variant2val): fix blank
+ string conversion.
+ [Bug #11880]
+ Thanks Akio Tajima for the patch!
+
Fri May 6 02:24:13 2016 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
* bignum.c: [DOC] Update result of 123456789 ** -2.
diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c
index 02ad82b4d4..ac3c2a6a73 100644
--- a/ext/win32ole/win32ole.c
+++ b/ext/win32ole/win32ole.c
@@ -864,6 +864,9 @@ ole_vstr2wc(VALUE vstr)
/* do not type-conversion here to prevent from other arguments
* changing (if exist) */
Check_Type(vstr, T_STRING);
+ if (RSTRING_LEN(vstr) == 0) {
+ return NULL;
+ }
enc = rb_enc_get(vstr);
@@ -1571,10 +1574,16 @@ ole_variant2val(VARIANT *pvar)
case VT_BSTR:
{
- if(V_ISBYREF(pvar))
- obj = ole_wc2vstr(*V_BSTRREF(pvar), FALSE);
- else
- obj = ole_wc2vstr(V_BSTR(pvar), FALSE);
+ if(V_ISBYREF(pvar)) {
+ obj = (SysStringLen(*V_BSTRREF(pvar)) == 0)
+ ? rb_str_new2("")
+ : ole_wc2vstr(*V_BSTRREF(pvar), FALSE);
+ }
+ else {
+ obj = (SysStringLen(V_BSTR(pvar)) == 0)
+ ? rb_str_new2("")
+ : ole_wc2vstr(V_BSTR(pvar), FALSE);
+ }
break;
}
diff --git a/version.h b/version.h
index 8a4b0efe18..723c3eb39a 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
#define RUBY_VERSION "2.3.2"
#define RUBY_RELEASE_DATE "2016-05-06"
-#define RUBY_PATCHLEVEL 116
+#define RUBY_PATCHLEVEL 117
#define RUBY_RELEASE_YEAR 2016
#define RUBY_RELEASE_MONTH 5