ID: 38456 Updated by: [EMAIL PROTECTED] Reported By: alex dot dean at pni dot com -Status: Open +Status: Feedback Bug Type: Apache2 related Operating System: RHEL 4 PHP Version: 5.1.5RC1 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.2-win32-latest.zip Previous Comments: ------------------------------------------------------------------------ [2006-08-14 22:29:15] alex dot dean at pni dot com Description: ------------ Using a PHP script as an Apache ErrorDocument causes PHP to segfault if the PHP script uses the virtual() function. PHP Configuration : ./configure --with-apxs2=/apps/apache_2.0.54/bin/apxs --with-mysql=/usr/local/mysql --with-zlib --with-mysqli=/usr/local/mysql/bin/mysql_config --with-gettext --enable-ftp --with-cgi --enable-cgi --with-openssl --with-gd --with-jpeg-dir=/usr --enable-mbstring=all --enable-debug Apache Configuration : ./configure --enable-ssl --prefix=/apps/apache_2.0.54 --enable-so --enable-rewrite --with-mpm=prefork --enable-deflate --enable-headers --enable-file-cache Reproduce code: --------------- httpd.conf : ErrorDocument 404 virtual1.php virtual1.php : <html> <head> <title>Virtual and SSI Tests</title> </head> <body> <? virtual('/virtual2.php'); ?> </body> </html> virtual2.php : <? echo 'Included virtual2.php.' ?> Start browser and browse to any non-existent URL. Neither virtual1.php and virtual2.php cause errors when browsed to directly. Using virtual2.php as an ErrorDocument does not cause any errors. Expected result: ---------------- I should see 'Included virtual2.php' displayed in the browser window. Actual result: -------------- Actual result is a segmentation fault. [EMAIL PROTECTED] htdocs]# gdb /apps/apache_2.0.54/bin/httpd This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) run -X Starting program: /apps/apache_2.0.54/bin/httpd -X [Thread debugging using libthread_db enabled] [New Thread -1208023360 (LWP 23963)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1208023360 (LWP 23963)] 0x010ad9aa in _zval_ptr_dtor (zval_ptr=0x8377314, __zend_filename=0x12ebddc "/usr/local/src/php-5.1-cvs/Zend/zend_execute.h", __zend_lineno=146) at /usr/local/src/php-5.1-cvs/Zend/zend_execute_API.c:393 393 (*zval_ptr)->refcount--; (gdb) bt #0 0x010ad9aa in _zval_ptr_dtor (zval_ptr=0x8377314, __zend_filename=0x12ebddc "/usr/local/src/php-5.1-cvs/Zend/zend_execute.h", __zend_lineno=146) at /usr/local/src/php-5.1-cvs/Zend/zend_execute_API.c:393 #1 0x010d5410 in zend_do_fcall_common_helper_SPEC (execute_data=0xbfffd260) at zend_execute.h:146 #2 0x010d4f11 in execute (op_array=0x83700d4) at zend_vm_execute.h:92 #3 0x010bae5e in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/local/src/php-5.1-cvs/Zend/zend.c:1109 #4 0x01082045 in php_execute_script (primary_file=0xbffff5b0) at /usr/local/src/php-5.1-cvs/main/main.c:1737 #5 0x01140898 in php_handler (r=0x835fb30) at /usr/local/src/php-5.1-cvs/sapi/apache2handler/sapi_apache2.c:586 #6 0x080b883a in ap_run_handler (r=0x835fb30) at config.c:152 #7 0x080b8c05 in ap_invoke_handler (r=0x835fb30) at config.c:364 #8 0x080a164d in ap_internal_redirect (new_uri=0x1c <Address 0x1c out of bounds>, r=0x0) at http_request.c:465 #9 0x080a1976 in ap_process_request (r=0x83584f0) at http_request.c:262 #10 0x0809d691 in ap_process_http_connection (c=0x8352258) at http_core.c:251 #11 0x080c1cd2 in ap_run_process_connection (c=0x8352258) at connection.c:43 #12 0x080b7015 in child_main (child_num_arg=28) at prefork.c:610 #13 0x080b7209 in make_child (s=0x81c9ba8, slot=0) at prefork.c:650 #14 0x080b72d0 in startup_children (number_to_start=100) at prefork.c:722 #15 0x080b79a3 in ap_mpm_run (_pconf=0xbffff910, plog=0x8200198, s=0xbffff914) at prefork.c:941 #16 0x080bca73 in main (argc=2, argv=0xbffffab4) at main.c:618 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=38456&edit=1
