Edit report at https://bugs.php.net/bug.php?id=64053&edit=1
ID: 64053
Comment by: gasol dot wu at gmail dot com
Reported by: gasol dot wu at gmail dot com
Summary: It's possible to change constant value in C
extension.
Status: Not a bug
Type: Bug
Package: Scripting Engine problem
Operating System: MacOS X 10.8/FreeBSD 9.1
PHP Version: 5.4.11
Block user comment: N
Private report: N
New Comment:
I understand PHP extensions can do many things, But why does PHP 5.3 and PHP
5.4
have inconsistent result ?
Previous Comments:
------------------------------------------------------------------------
[2013-01-23 11:50:33] [email protected]
PHP extensions can do many things. What you are doing is changing engine-owned
memory. Anything might happen. Make sure to either separate the zval of the
parameter or copy the string before modifying it.
------------------------------------------------------------------------
[2013-01-23 06:05:36] gasol dot wu at gmail dot com
Description:
------------
I have encounter this problem couple weeks ago, So I write some tests to see
different result between PHP 5.3 and PHP 5.4 (even in 5.4.11).
https://github.com/Gasol/const_test
Testing Result:
5.4.11
=====================================================================
PHP : /Users/gasol/.phpbrew/php/php-5.4.11/bin/php
PHP_SAPI : cli
PHP_VERSION : 5.4.11
ZEND_VERSION: 2.4.0
PHP_OS : Darwin - Darwin gasol-mbp 12.2.0 Darwin Kernel Version 12.2.0:
Sat
Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64
INI actual : /Users/gasol/Code/const_test/tmp-php.ini
More .INIs :
CWD : /Users/gasol/Code/const_test
Extra dirs :
VALGRIND : Not used
=====================================================================
TIME START 2013-01-23 05:52:33
=====================================================================
PASS Check for const_test presence [tests/001-load.phpt]
FAIL Check for modify custom constant [tests/002-modify_const.phpt]
PASS Check for modify constant declared in class [tests/003-
modify_class_const.phpt]
FAIL Check for modify system constant [tests/004-modify_system_const.phpt]
=====================================================================
TIME END 2013-01-23 05:52:33
PHP 5.3.21
=====================================================================
PHP : /Users/gasol/.phpbrew/php/php-5.3.21/bin/php
PHP_SAPI : cli
PHP_VERSION : 5.3.21
ZEND_VERSION: 2.3.0
PHP_OS : Darwin - Darwin gasol-mbp 12.2.0 Darwin Kernel Version 12.2.0:
Sat
Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64
INI actual : /Users/gasol/Code/const_test/tmp-php.ini
More .INIs :
CWD : /Users/gasol/Code/const_test
Extra dirs :
VALGRIND : Not used
=====================================================================
TIME START 2013-01-23 06:03:06
=====================================================================
PASS Check for const_test presence [tests/001-load.phpt]
PASS Check for modify custom constant [tests/002-modify_const.phpt]
PASS Check for modify constant declared in class [tests/003-
modify_class_const.phpt]
PASS Check for modify system constant [tests/004-modify_system_const.phpt]
=====================================================================
TIME END 2013-01-23 06:03:06
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=64053&edit=1