From: [EMAIL PROTECTED]
Operating system: Linux (Redhat 7.1 & 6.2)
PHP version: 4.0.6
PHP Bug Type: Reproducible crash
Bug description: Unsetting a global var inside a function not working (can crash)
In a (bad) block of code I found the HTTP process to crash every time with
the Zend Optimizer (v1.1.0) enabled in PHP 4.0.6. The same version of Zend
Optimizer does not crash in 4.0.5, however I think this is more a PHP issue
than the Optimizer's.
Code sample:
<?php
$globalVar = "Hello world";
clearGlobal();
echo "After clear = $globalVar";
function clearGlobal()
{
global $globalVar;
unset ($GLOBALS['globalVar']);
}
?>
With or without the Zend Optimizer enabled, the 'echo' statement displays
crap (in both 4.0.5 & 4.0.6), rather than an empty value. However, with
the Zend Optimizer enabled it actually causes the HTTP process to crash in
4.0.6.
My build command for PHP is currently:
./configure --with-mysql=/usr/local/mysql --enable-track-vars
--with-apxs=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/apache/conf --with-zlib
(I have rebuilt PHP without the zlib extension and it makes no
difference)
-------------------------------------------------------
GDB Backtrace:
Starting program: /usr/local/apache-1.3.12/bin/httpd -X
Program received signal SIGSEGV, Segmentation fault.
0x4025dee5 in zend_reverse_table ()
from /usr/local/apache/libexec/ZendOptimizer.so
(gdb) bt
#0 0x4025dee5 in zend_reverse_table ()
from /usr/local/apache/libexec/ZendOptimizer.so
#1 0x40264513 in zend_reverse_table ()
from /usr/local/apache/libexec/ZendOptimizer.so
#2 0x40271b35 in zend_reverse_table ()
from /usr/local/apache/libexec/ZendOptimizer.so
#3 0x4027501d in zend_oe () from
/usr/local/apache/libexec/ZendOptimizer.so
#4 0x403b7130 in zend_execute_scripts (type=8, file_count=3) at
zend.c:752
#5 0x403c85db in php_execute_script (primary_file=0xbffff818) at
main.c:1206
#6 0x403c4e86 in apache_php_module_main (r=0x80ef48c,
display_source_mode=0)
at sapi_apache.c:89
#7 0x403c5811 in send_php (r=0x80ef48c, display_source_mode=0,
filename=0x0)
at mod_php4.c:536
#8 0x403c583a in send_parsed_php (r=0x80ef48c) at mod_php4.c:547
#9 0x080542e3 in ap_invoke_handler () at eval.c:41
#10 0x08067819 in process_request_internal () at eval.c:41
#11 0x0806787c in ap_process_request () at eval.c:41
#12 0x0805f11e in child_main () at eval.c:41
#13 0x0805f2ac in make_child () at eval.c:41
#14 0x0805f409 in startup_children () at eval.c:41
#15 0x0805fa36 in standalone_main () at eval.c:41
#16 0x080601c3 in main () at eval.c:41
#17 0x4009a177 in __libc_start_main (main=0x805fe7c <main>, argc=2,
ubp_av=0xbffffa3c, init=0x804e864 <_init>, fini=0x809419c <_fini>,
rtld_fini=0x4000e184 <_dl_fini>, stack_end=0xbffffa34)
at ../sysdeps/generic/libc-start.c:129
--
Edit bug report at: http://bugs.php.net/?id=13259&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]