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