ID: 37899
User updated by: okumurya at hotmail dot com
-Summary: too much allocate
Reported By: okumurya at hotmail dot com
Status: Open
Bug Type: COM related
Operating System: Windows 2000 Professional
PHP Version: 4.4.2
New Comment:
change summary
Previous Comments:
------------------------------------------------------------------------
[2006-06-23 05:09:36] okumurya at hotmail dot com
Description:
------------
In UTF-8, 'Z_STRLEN_P(pval_arg) * sizeof(OLECHAR)' is longer than
Widechar.
So SysAllocStringByteLen copies junk datas.
following is a patch.
--- conversion.c.orig 2006-06-23 11:28:06.496027200 +0900
+++ conversion.c 2006-06-23 14:01:42.838476800 +0900
@@ -247,8 +247,9 @@
case VT_BSTR:
convert_to_string_ex(&pval_arg);
+
unicode_str =
php_char_to_OLECHAR(Z_STRVAL_P(pval_arg),
Z_STRLEN_P(pval_arg), codepage TSRMLS_CC);
- V_BSTR(var_arg) = SysAllocStringByteLen((char
*) unicode_str,
Z_STRLEN_P(pval_arg) * sizeof(OLECHAR));
+ V_BSTR(var_arg) = SysAllocString(unicode_str);
efree(unicode_str);
break;
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=37899&edit=1