Bug #60306 [Asn]: zend-multibyte failed in 5.4
| From: | laruence@php.net | Date: | Fri, 18 Nov 2011 08:40:23 +0000 |
| Subject: | Bug #60306 [Asn]: zend-multibyte failed in 5.4 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-165316@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=60306&edit=1
ID: 60306
Updated by: laruence@php.net
Reported by: laruence@php.net
Summary: zend-multibyte failed in 5.4
Status: Assigned
Type: Bug
Package: mbstring related
PHP Version: 5.4.0RC1
-Assigned To: dmitry
+Assigned To: laruence
Block user comment: N
Private report: N
New Comment:
I have make a fix, re-assign to me, thanks dmitry ;)
Previous Comments:
------------------------------------------------------------------------
[2011-11-18 05:05:55] laruence@php.net
actully, there is a more simple reproduce script:
<?php
$s = "æ´ªä»";
var_dump(mb_convert_encoding($s, "utf8", "gbk"));
?>
save script in fenc=cp936
than, in php 5.4 this result a :
string(3) "æ´ª"
characters lost while converting from cp936 to utf8. this is really a big
problem.....
------------------------------------------------------------------------
[2011-11-17 09:04:53] laruence@php.net
seems the characters is lost in the mbfl_buffer_converter_feed2 (called in
zend_multibyte_encoding_converter)
------------------------------------------------------------------------
[2011-11-15 08:28:33] laruence@php.net
the same script as above, will trigger a abort in this way:
$php54 -d mbstring.internal_encoding=cp936 /tmp/1.php
php: Zend/zend_language_scanner.l:126: encoding_filter_script_to_internal:
Assertion `internal_encoding &&
zend_multibyte_check_lexer_compatibility(internal_encoding)' failed.
Aborted (core dumped)
------------------------------------------------------------------------
[2011-11-15 08:27:09] laruence@php.net
if I change the script to:
<?php
declare(encoding="gb2312");
$s = "æ´ªä»ç";
var_dump($s);
?>
also set fenc=cp936, then a memory leak will be reported:
$ php54 -d mbstring.internal_encoding=utf8 -dzend.script_encoding=cp936
/tmp/1.php
string(7) "洪�"
[Tue Nov 15 16:26:36 2011] Script: '/tmp/1.php'
***php-src/trunk/ext/mbstring/mbstring.c(612) : Freeing 0x2A95DDDF68 (131
bytes), script=/tmp/1.php
=== Total 1 memory leaks detected ===
------------------------------------------------------------------------
[2011-11-15 07:37:53] laruence@php.net
dmitry, plz look at this, thanks :)
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=60306
--
Edit this bug report at https://bugs.php.net/bug.php?id=60306&edit=1