ID:               43941
 Updated by:       [EMAIL PROTECTED]
 Reported By:      stas at zend dot com
-Status:           Open
+Status:           Closed
 Bug Type:         JSON related
 Operating System: *
 PHP Version:      5.3CVS-2008-01-25 (CVS)
 New Comment:

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.




Previous Comments:
------------------------------------------------------------------------

[2008-01-25 22:19:43] stas at zend dot com

Description:
------------
Right now, if json_encode sees wrong UTF-8 data, it just cuts the
string in the middle, no error returned, no message produced. 

I think it's not a good idea to just silently cut the data. In fact, I
think it is a bug caused by this code in ext/json/utf8_to_utf16.c:
        if (c < 0) {
            return UTF8_END ? the_index : UTF8_ERROR;
        }
which inherited this bug from code published on json.org. It should
be:
        if (c < 0) {
            return (c == UTF8_END) ? the_index : UTF8_ERROR;
        }

Reproduce code:
---------------
var_dump(json_encode("ab\xE0"));
var_dump(json_encode("ab\xE0\""));

Expected result:
----------------
Some error message

Actual result:
--------------
Just:
""ab""
""ab""


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=43941&edit=1

Reply via email to