mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
merge revision(s) 47153: [Backport #10127]
* ext/win32ole/win32ole.c (ole_create_dcom): use the converted result if the argument can be converted to a string, to get rid of invalid access. Thanks to nobu. [ruby-dev:48467] [Bug #10127] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@47405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
2e86a92b3c
commit
cd171e481f
3 changed files with 10 additions and 6 deletions
|
|
@ -1,3 +1,9 @@
|
|||
Fri Sep 5 14:08:00 2014 Masaki Suketa <masaki.suketa@nifty.ne.jp>
|
||||
|
||||
* ext/win32ole/win32ole.c (ole_create_dcom): use the converted
|
||||
result if the argument can be converted to a string, to get rid
|
||||
of invalid access. Thanks to nobu. [ruby-dev:48467] [Bug #10127]
|
||||
|
||||
Fri Sep 5 14:00:33 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* process.c (open): use UTF-8 version function to support
|
||||
|
|
|
|||
|
|
@ -361,7 +361,7 @@ static VALUE typelib_file_from_typelib(VALUE ole);
|
|||
static VALUE typelib_file(VALUE ole);
|
||||
static void ole_const_load(ITypeLib *pTypeLib, VALUE klass, VALUE self);
|
||||
static HRESULT clsid_from_remote(VALUE host, VALUE com, CLSID *pclsid);
|
||||
static VALUE ole_create_dcom(int argc, VALUE *argv, VALUE self);
|
||||
static VALUE ole_create_dcom(VALUE self, VALUE ole, VALUE host, VALUE others);
|
||||
static VALUE ole_bind_obj(VALUE moniker, int argc, VALUE *argv, VALUE self);
|
||||
static VALUE fole_s_connect(int argc, VALUE *argv, VALUE self);
|
||||
static VALUE fole_s_const_load(int argc, VALUE *argv, VALUE self);
|
||||
|
|
@ -2612,9 +2612,8 @@ clsid_from_remote(VALUE host, VALUE com, CLSID *pclsid)
|
|||
}
|
||||
|
||||
static VALUE
|
||||
ole_create_dcom(int argc, VALUE *argv, VALUE self)
|
||||
ole_create_dcom(VALUE self, VALUE ole, VALUE host, VALUE others)
|
||||
{
|
||||
VALUE ole, host, others;
|
||||
HRESULT hr;
|
||||
CLSID clsid;
|
||||
OLECHAR *pbuf;
|
||||
|
|
@ -2632,7 +2631,6 @@ ole_create_dcom(int argc, VALUE *argv, VALUE self)
|
|||
GetProcAddress(gole32, "CoCreateInstanceEx");
|
||||
if (!gCoCreateInstanceEx)
|
||||
rb_raise(rb_eRuntimeError, "CoCreateInstanceEx is not supported in this environment");
|
||||
rb_scan_args(argc, argv, "2*", &ole, &host, &others);
|
||||
|
||||
pbuf = ole_vstr2wc(ole);
|
||||
hr = CLSIDFromProgID(pbuf, &clsid);
|
||||
|
|
@ -3250,7 +3248,7 @@ fole_initialize(int argc, VALUE *argv, VALUE self)
|
|||
rb_raise(rb_eSecurityError, "Insecure Object Creation - %s",
|
||||
StringValuePtr(svr_name));
|
||||
}
|
||||
return ole_create_dcom(argc, argv, self);
|
||||
return ole_create_dcom(self, svr_name, host, others);
|
||||
}
|
||||
|
||||
/* get CLSID from OLE server name */
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#define RUBY_VERSION "2.0.0"
|
||||
#define RUBY_RELEASE_DATE "2014-09-05"
|
||||
#define RUBY_PATCHLEVEL 554
|
||||
#define RUBY_PATCHLEVEL 555
|
||||
|
||||
#define RUBY_RELEASE_YEAR 2014
|
||||
#define RUBY_RELEASE_MONTH 9
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue