diff options
| author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-01-20 05:05:33 +0000 |
|---|---|---|
| committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-01-20 05:05:33 +0000 |
| commit | a45cd375575bc7a87e2623d8a4e0e8595d3088e2 (patch) | |
| tree | fca31931ee293cf4279bda9389898ae14ce69576 | |
| parent | 1e75c183459f33ecda3227ab21b4242b74501e05 (diff) | |
merge revision(s) 49315: [Backport #10697]
* ext/win32ole/win32ole.c (ole_invoke): avoid SEGV when VT_RECORD
variable is passed by reference. [ruby-dev:48803] [Bug #10697]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | ext/win32ole/win32ole.c | 4 | ||||
| -rw-r--r-- | version.h | 2 |
3 files changed, 10 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Tue Jan 20 14:05:08 2015 Masaki Suketa <masaki.suketa@nifty.ne.jp> + + * ext/win32ole/win32ole.c (ole_invoke): avoid SEGV when VT_RECORD + variable is passed by reference. [ruby-dev:48803] [Bug #10697] + Mon Jan 19 15:45:33 2015 Seiei Higa <hanachin@gmail.com> * vm_method.c (rb_method_entry): if no super class, no original diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index 9daa8554ba..4d664e8272 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -2661,6 +2661,10 @@ ole_invoke(int argc, VALUE *argv, VALUE self, USHORT wFlags, BOOL is_bracket) param = rb_ary_entry(paramS, i-cNamedArgs); if (rb_obj_is_kind_of(param, cWIN32OLE_VARIANT)) { ole_variant2variant(param, &op.dp.rgvarg[n]); + } else if (rb_obj_is_kind_of(param, cWIN32OLE_RECORD)) { + ole_val2variant(param, &realargs[n]); + op.dp.rgvarg[n] = realargs[n]; + V_VT(&op.dp.rgvarg[n]) = VT_RECORD | VT_BYREF; } else { ole_val2variant(param, &realargs[n]); V_VT(&op.dp.rgvarg[n]) = VT_VARIANT | VT_BYREF; @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.2.0" #define RUBY_RELEASE_DATE "2015-01-20" -#define RUBY_PATCHLEVEL 33 +#define RUBY_PATCHLEVEL 34 #define RUBY_RELEASE_YEAR 2015 #define RUBY_RELEASE_MONTH 1 |
