[前][次][番号順一覧][スレッド一覧]

ruby-changes:37271

From: naruse <ko1@a...>
Date: Tue, 20 Jan 2015 14:05:48 +0900 (JST)
Subject: [ruby-changes:37271] naruse:r49352 (ruby_2_2): merge revision(s) 49315: [Backport #10697]

naruse	2015-01-20 14:05:33 +0900 (Tue, 20 Jan 2015)

  New Revision: 49352

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=49352

  Log:
    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]

  Modified directories:
    branches/ruby_2_2/
  Modified files:
    branches/ruby_2_2/ChangeLog
    branches/ruby_2_2/ext/win32ole/win32ole.c
    branches/ruby_2_2/version.h
Index: ruby_2_2/ChangeLog
===================================================================
--- ruby_2_2/ChangeLog	(revision 49351)
+++ ruby_2_2/ChangeLog	(revision 49352)
@@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/ChangeLog#L1
+Tue Jan 20 14:05:08 2015  Masaki Suketa <masaki.suketa@n...>
+
+	* 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@g...>
 
 	* vm_method.c (rb_method_entry): if no super class, no original
Index: ruby_2_2/ext/win32ole/win32ole.c
===================================================================
--- ruby_2_2/ext/win32ole/win32ole.c	(revision 49351)
+++ ruby_2_2/ext/win32ole/win32ole.c	(revision 49352)
@@ -2661,6 +2661,10 @@ ole_invoke(int argc, VALUE *argv, VALUE https://github.com/ruby/ruby/blob/trunk/ruby_2_2/ext/win32ole/win32ole.c#L2661
             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;
Index: ruby_2_2/version.h
===================================================================
--- ruby_2_2/version.h	(revision 49351)
+++ ruby_2_2/version.h	(revision 49352)
@@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_2/version.h#L1
 #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

Property changes on: ruby_2_2
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /trunk:r49315


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]