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

Reply via email to