From: [EMAIL PROTECTED] Operating system: Linux 2.4.21 (debian sid) PHP version: 5.0.0b1 (beta1) PHP Bug Type: Reproducible crash Bug description: php CLI gets a segmentation fault in interactive mode with a simple foreach
Description: ------------ Just call php with -a option to enter in interactive mode. Then open php tags <? (short or long: <?php), write 'foreach' loop and php dies. The list of modules is long: ./configure \ --prefix=/usr/local/stow/php \ --with-apxs=/usr/bin/apxs \ --with-regex=php \ --with-config-file-path=/usr/loca/stow/php/etc/php \ --disable-rpath \ --disable-debug \ --enable-memory-limit \ --with-layout=GNU \ --enable-calendar \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --enable-track-vars \ --enable-trans-sid \ --enable-bcmath \ --with-bz2 \ --with-crack \ --enable-ctype \ --with-iconv \ --enable-exif \ --enable-filepro \ --enable-ftp \ --with-gettext \ --enable-mbstring \ --with-pcre-regex=/usr \ --enable-shmop \ --enable-sockets \ --enable-wddx \ --disable-xml \ --with-expat-dir=/usr \ --enable-yp \ --with-zlib \ --with-pgsql=shared,/usr \ --with-kerberos=/usr \ --with-openssl=/usr \ --with-exec-dir=/usr/lib/php4/libexec \ --disable-static \ --enable-dba \ --with-db4 \ --with-gdbm \ --with-inifile \ --with-flatfile \ --enable-dbase \ --with-curl=shared,/usr \ --with-dom=shared,/usr \ --with-dom-xslt=shared,/usr \ --with-dom-exslt=shared,/usr \ --with-zlib-dir=/usr \ --with-gd=shared \ --with-jpeg-dir=shared,/usr \ --with-xpm-dir=shared,/usr/X11R6 \ --with-png-dir=shared,/usr \ --with-imap=shared,/usr \ --with-imap-ssl \ --with-mcal=shared,/usr \ --with-mcrypt=shared,/usr \ --with-mhash=shared,/usr \ --with-sqlite=shared,/usr \ --with-mysql=shared,/usr \ --with-unixODBC=shared,/usr \ --with-recode=shared,/usr \ --enable-xslt \ --with-xsl=shared,/usr \ --with-xslt-sablot=shared,/usr \ --with-snmp=shared \ --enable-ucd-snmp-hack \ --with-ttf=shared,/usr \ --with-mime-magic=/etc/mime-magic \ --with-mysql=shared,/usr \ --with-ncurses=shared,/usr \ --with-readline=shared,/usr \ --with-iodbc=shared,/usr \ --enable-pcntl \ --with-simplexml \ --with-libxml-dir=/usr \ --with-freetype-dir=shared,/usr php.ini diff (compared to php.ini-recomended): # diff -u php.ini-recommended php.ini --- src/php-5.0.0b1/php.ini-recommended 2003-06-18 12:19:16.000000000 -0300 +++ /usr/local/stow/php/etc/php/php.ini 2003-08-03 03:20:22.000000000 -0300 @@ -127,7 +127,7 @@ ; also. ; Note: output_handler must be empty if this is set 'On' !!!! ; Instead you must use zlib.output_handler. -zlib.output_compression = Off +zlib.output_compression = On ; You cannot specify additional output handlers if zlib.output_compression ; is activated here. This setting does the same as output_handler but in @@ -289,7 +289,7 @@ ; instead (see below). Keeping display_errors enabled on a production web site ; may reveal security information to end users, such as file paths on your Web ; server, your database schema or other information. -display_errors = Off +display_errors = On ; Even when display_errors is on, errors that occur during PHP's startup ; sequence are not displayed. It's strongly recommended to keep @@ -307,7 +307,7 @@ ; Do not log repeated messages. Repeated errors must occur in same file on same ; line until ignore_repeated_source is set true. -ignore_repeated_errors = Off +ignore_repeated_errors = On ; Ignore source of message when ignoring repeated messages. When this setting ; is On you will not log errors with repeated messages from different files or @@ -320,7 +320,7 @@ report_memleaks = On ; Store the last error/warning message in $php_errormsg (boolean). -track_errors = Off +track_errors = On Reproduce code: --------------- homero:/home/luca# /usr/local/stow/php/bin/php -a Interactive mode enabled <? foreach(range(1,2) as $i); Segmentation Fault homero:/home/luca# /usr/local/stow/php/bin/php -a Interactive mode enabled <? $a = array(1,2,3,4); foreach ($a as $i); Segmentation Fault Expected result: ---------------- The foreach loop. Actual result: -------------- (gdb) run -a Starting program: /usr/local/stow/php/bin/php -a [New Thread 16384 (LWP 16009)] Interactive mode enabled <? foreach (range(1,2) as $i); Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 16384 (LWP 16009)] 0x0816a666 in execute (op_array=0x824d0d4) at /home/luca/src/php-5.0.0b1/Zend/zend_execute.c:1254 1254 if (EX(opline)->handler(&execute_data, op_array TSRMLS_CC)) { (gdb) bt #0 0x0816a666 in execute (op_array=0x824d0d4) at /home/luca/src/php-5.0.0b1/Zend/zend_execute.c:1254 #1 0x0815449f in execute_new_code () at /home/luca/src/php-5.0.0b1/Zend/zend_execute_API.c:841 #2 0x08141520 in zendparse () at Zend/zend_language_parser.c:2174 #3 0x08144ffb in compile_file (file_handle=0xbffff990, type=2) at Zend/zend_language_scanner.c:3067 #4 0x0815b5d1 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /home/luca/src/php-5.0.0b1/Zend/zend.c:1013 #5 0x0812e246 in php_execute_script (primary_file=0xbffff990) at /home/luca/src/php-5.0.0b1/main/main.c:1695 #6 0x081757dc in main (argc=2, argv=0xbffffa24) at /home/luca/src/php-5.0.0b1/sapi/cli/php_cli.c:910 (gdb) -- Edit bug report at http://bugs.php.net/?id=24922&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=24922&r=trysnapshot4 Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=24922&r=trysnapshot5 Fixed in CVS: http://bugs.php.net/fix.php?id=24922&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=24922&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=24922&r=needtrace Try newer version: http://bugs.php.net/fix.php?id=24922&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=24922&r=support Expected behavior: http://bugs.php.net/fix.php?id=24922&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=24922&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=24922&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=24922&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=24922&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=24922&r=dst IIS Stability: http://bugs.php.net/fix.php?id=24922&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=24922&r=gnused