]> granicus.if.org Git - php/commitdiff
Fixed bug #37262 (var_export() does not escape \0 character).
authorIlia Alshanetsky <iliaa@php.net>
Mon, 9 Oct 2006 18:08:34 +0000 (18:08 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 9 Oct 2006 18:08:34 +0000 (18:08 +0000)
NEWS
ext/standard/tests/strings/bug37262.phpt [new file with mode: 0644]
ext/standard/tests/strings/explode.phpt
ext/standard/var.c

diff --git a/NEWS b/NEWS
index 7d2c60a04fb718a168f005fa7fe67df4de144eeb..d5bc2d0d5d08fc5d063885061cb2fa7153c11906 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@ PHP                                                                        NEWS
 - Fixed PECL bug #8816 (issue in php_oci_statement_fetch with more than one 
   piecewise column) (jeff at badtz-maru dot com, Tony)
 - Fixed bug #39067 (getDeclaringClass() and private properties). (Tony)
+- Fixed bug #37262 (var_export() does not escape \0 character). (Ilia)
 
 05 Oct 2006, PHP 5.2.0RC5
 - Updated bundled OpenSSL to version 0.9.8d in the Windows distro. (Edin)
diff --git a/ext/standard/tests/strings/bug37262.phpt b/ext/standard/tests/strings/bug37262.phpt
new file mode 100644 (file)
index 0000000..474251a
--- /dev/null
@@ -0,0 +1,9 @@
+--TEST--
+Bug #37262 (var_export() does not escape \0 character)
+--FILE--
+<?php
+$func = create_function('$a', 'return $a;');
+var_export($func);
+?>
+--EXPECT--     
+'\000lambda_1'
index 1198a09a9773cd56af60c48207a5611265caab65..defb79c229f64473876a8e0b7b7d1d61646550ad 100644 (file)
@@ -29,7 +29,7 @@ var_dump(explode(":^:","a lazy dog:^:jumps::over:^:",-1));
 var_dump(explode(":^:","a lazy dog:^:jumps::over:^:",-2));
 ?>
 --EXPECTF--
-26d4e18734cb2582df5055e2175223df
+6e5d59d5afd6693547a733219d079658
 bool(false)
 bool(false)
 bool(false)
index 1292d6b5364bb7173cd0da9dbf9b17357f3596d1..32ce4daa2b6e27362207907b302f432d961c33c6 100644 (file)
@@ -416,7 +416,7 @@ PHPAPI void php_var_export(zval **struc, int level TSRMLS_DC)
                php_printf("%.*G", (int) EG(precision), Z_DVAL_PP(struc));
                break;
        case IS_STRING:
-               tmp_str = php_addcslashes(Z_STRVAL_PP(struc), Z_STRLEN_PP(struc), &tmp_len, 0, "'\\", 2 TSRMLS_CC);
+               tmp_str = php_addcslashes(Z_STRVAL_PP(struc), Z_STRLEN_PP(struc), &tmp_len, 0, "'\\\0", 3 TSRMLS_CC);
                PUTS ("'");
                PHPWRITE(tmp_str, tmp_len);
                PUTS ("'");