From: Wez Furlong Date: Sat, 7 Aug 2004 21:00:59 +0000 (+0000) Subject: Fix for Bug #29490 from Michael Sisolak. X-Git-Tag: PRE_ZEND_VM_DISPATCH_PATCH~217 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8c4b687769f5ce62795f324f29eafc72120a72a7;p=php Fix for Bug #29490 from Michael Sisolak. Another fine patch; thanks Michael. --- diff --git a/ext/com_dotnet/com_dotnet.c b/ext/com_dotnet/com_dotnet.c index e6f92c155a..58c4255fed 100644 --- a/ext/com_dotnet/com_dotnet.c +++ b/ext/com_dotnet/com_dotnet.c @@ -101,6 +101,7 @@ PHP_FUNCTION(com_dotnet_create_instance) int assembly_name_len, datatype_name_len; struct dotnet_runtime_stuff *stuff; DISPPARAMS params; + OLECHAR *olestring; VARIANT vargs[2]; VARIANT retval; HRESULT hr; @@ -138,10 +139,14 @@ PHP_FUNCTION(com_dotnet_create_instance) VariantInit(&retval); V_VT(&vargs[0]) = VT_BSTR; - V_BSTR(&vargs[0]) = php_com_string_to_olestring(datatype_name, datatype_name_len, obj->code_page TSRMLS_CC); + olestring = php_com_string_to_olestring(datatype_name, datatype_name_len, obj->code_page TSRMLS_CC); + V_BSTR(&vargs[0]) = SysAllocStringByteLen((char*)olestring, datatype_name_len * sizeof(OLECHAR)); + efree(olestring); V_VT(&vargs[1]) = VT_BSTR; - V_BSTR(&vargs[1]) = php_com_string_to_olestring(assembly_name, assembly_name_len, obj->code_page TSRMLS_CC); + olestring = php_com_string_to_olestring(assembly_name, assembly_name_len, obj->code_page TSRMLS_CC); + V_BSTR(&vargs[1]) = SysAllocStringByteLen((char*)olestring, assembly_name_len * sizeof(OLECHAR)); + efree(olestring); where = "IDispatch_Invoke"; hr = IDispatch_Invoke(stuff->dotnet_domain, stuff->create_instance, &IID_NULL, LOCALE_SYSTEM_DEFAULT,