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

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 35ab73a4eda41e7c3b8c2492f2e660d02fa76cb1..2975dc2db279c64c18a8f037d85e15a2ea257970 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 d0780ddd80c7e16476978ebd16a0f4affadaf0f2..0746402b74e83f1bb4304f7bb2edf8d537c84ab7 100644 (file)
@@ -543,7 +543,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 ("'");