bjori           Tue Jul 24 22:57:14 2007 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/json/tests     bug42090.phpt 

  Modified files:              
    /php-src/ext/json   json.c 
    /php-src    NEWS 
  Log:
  MFH: Fixed bug#42090 (json_decode causes segmentation fault)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/json/json.c?r1=1.9.2.18&r2=1.9.2.19&diff_format=u
Index: php-src/ext/json/json.c
diff -u php-src/ext/json/json.c:1.9.2.18 php-src/ext/json/json.c:1.9.2.19
--- php-src/ext/json/json.c:1.9.2.18    Mon Jul 23 12:24:52 2007
+++ php-src/ext/json/json.c     Tue Jul 24 22:57:13 2007
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: json.c,v 1.9.2.18 2007/07/23 12:24:52 tony2001 Exp $ */
+/* $Id: json.c,v 1.9.2.19 2007/07/24 22:57:13 bjori Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -470,7 +470,7 @@
                        RETURN_DOUBLE(d);
                }
        }
-       if (*parameter == '"' && parameter[parameter_len-1] == '"') {
+       if (parameter_len > 1 && *parameter == '"' && 
parameter[parameter_len-1] == '"') {
                RETURN_STRINGL(parameter+1, parameter_len-2, 1);
        } else if (*parameter == '{' || *parameter == '[') { /* invalid JSON 
string */
                RETURN_NULL();
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.856&r2=1.2027.2.547.2.857&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.856 php-src/NEWS:1.2027.2.547.2.857
--- php-src/NEWS:1.2027.2.547.2.856     Tue Jul 24 22:35:18 2007
+++ php-src/NEWS        Tue Jul 24 22:57:13 2007
@@ -64,6 +64,7 @@
 - Fixed PECL bug #11216 (crash in ZipArchive::addEmptyDir when a directory 
   already exists). (Pierre)
 
+- Fixed bug #42090 (json_decode causes segmentation fault). (Hannes)
 - Fixed bug #42072 (No warning message for clearstatcache() with arguments).
   (Ilia)
 - Fixed bug #42071 (ini scanner allows using NULL as option name). (Jani)

http://cvs.php.net/viewvc.cgi/php-src/ext/json/tests/bug42090.phpt?view=markup&rev=1.1
Index: php-src/ext/json/tests/bug42090.phpt
+++ php-src/ext/json/tests/bug42090.phpt
--TEST--
Bug#42090 (json_decode causes segmentation fault)
--SKIPIF--
<?php if (!extension_loaded("json")) print "skip"; ?>
--FILE--
<?php
var_dump(
        json_decode('""'),
        json_decode('"..".'),
        json_decode('"'),
        json_decode('""""'),
        json_encode('"'),
        json_decode(json_encode('"')),
        json_decode(json_encode('""'))
);
?>
--EXPECT--
string(0) ""
string(5) "".."."
string(1) """
string(2) """"
string(4) ""\"""
string(1) """
string(2) """"
--UEXPECT--
unicode(0) ""
unicode(5) "".."."
unicode(1) """
unicode(2) """"
string(4) ""\"""
unicode(1) """
unicode(2) """"

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to