From: Ilia Alshanetsky Date: Mon, 9 Oct 2006 18:09:42 +0000 (+0000) Subject: MFB: Fixed bug #37262 (var_export() does not escape \0 character). X-Git-Tag: RELEASE_1_0_0RC1~1335 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e8ccee4873ea5aa63a2379d396b3b78792883717;p=php MFB: Fixed bug #37262 (var_export() does not escape \0 character). --- diff --git a/ext/standard/tests/strings/bug37262.phpt b/ext/standard/tests/strings/bug37262.phpt new file mode 100644 index 0000000000..474251a816 --- /dev/null +++ b/ext/standard/tests/strings/bug37262.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #37262 (var_export() does not escape \0 character) +--FILE-- + +--EXPECT-- +'\000lambda_1' diff --git a/ext/standard/tests/strings/explode.phpt b/ext/standard/tests/strings/explode.phpt index 35ab73a4ed..2975dc2db2 100644 --- a/ext/standard/tests/strings/explode.phpt +++ b/ext/standard/tests/strings/explode.phpt @@ -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) diff --git a/ext/standard/var.c b/ext/standard/var.c index d0780ddd80..0746402b74 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -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 ("'");