PHP 4.0 Bug #2047 Updated: Crash in zend_hash_find() with a class declaration
| From: | Bug Database | Date: | Fri, 13 Aug 1999 21:02:37 +0000 |
| Subject: | PHP 4.0 Bug #2047 Updated: Crash in zend_hash_find() with a class declaration | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-9824@lists.php.net to get a copy of this message | ||
ID: 2047
User Update by: christophe.massiot@mail.dotcom.fr
Status: Open
Bug Type: Reproduceable crash
Description: Crash in zend_hash_find() with a class declaration
I now have a short script that reproduces the problem every time.
Create two files :
22:52 [webase3:p0] titi:~/html% cat test.php
<?
echo "toto";
include("testinc.php");
class toto3 extends toto2 { }
?>
22:52 [webase3:p0] titi:~/html% cat testinc.php
<?
class toto1 { }
class toto2 extends toto1 { }
?>
Now try to access to test.php twice. The second time httpd should segfault (at
least it segfaults on my box).
Other information that might be useful : while playing with it I experienced two
other types of crashes that may be related, with a slightly different backtrace.
Here they are :
Program received signal SIGSEGV, Segmentation fault.
0x80a0067 in lex_scan ()
(gdb) bt
#0 0x80a0067 in lex_scan ()
#1 0x80a4203 in do_return ()
#2 0x80a4fde in do_end_class_declaration ()
#3 0x80b0235 in zendparse ()
#4 0x809e99e in v_compile_files ()
#5 0x809e904 in compile_files ()
#6 0x809ea7c in compile_filename ()
#7 0x80b5478 in execute ()
#8 0x807333c in php_execute_script ()
#9 0x80733c0 in apache_php_module_main ()
#10 0x8071934 in send_php ()
#11 0x8071980 in send_parsed_php ()
#12 0x80baf13 in ap_invoke_handler ()
#13 0x80ce5c9 in ap_some_auth_required ()
#14 0x80ce62c in ap_process_request ()
#15 0x80c61ae in ap_child_terminate ()
#16 0x80c6348 in ap_child_terminate ()
#17 0x80c64b3 in ap_child_terminate ()
#18 0x80c6ae6 in ap_child_terminate ()
#19 0x80c7253 in main ()
#20 0x400e8212 in __libc_start_main () from /lib/libc.so.6
Program received signal SIGILL, Illegal instruction.
0x8165b45 in ?? ()
(gdb) bt
#0 0x8165b45 in ?? ()
#1 0x80a4203 in do_return ()
#2 0x80a4fde in do_end_class_declaration ()
#3 0x80b0235 in zendparse ()
#4 0x809e99e in v_compile_files ()
#5 0x809e904 in compile_files ()
#6 0x809ea7c in compile_filename ()
#7 0x80b5478 in execute ()
#8 0x807333c in php_execute_script ()
#9 0x80733c0 in apache_php_module_main ()
#10 0x8071934 in send_php ()
#11 0x8071980 in send_parsed_php ()
#12 0x80baf13 in ap_invoke_handler ()
#13 0x80ce5c9 in ap_some_auth_required ()
#14 0x80ce62c in ap_process_request ()
#15 0x80c61ae in ap_child_terminate ()
#16 0x80c6348 in ap_child_terminate ()
#17 0x80c64b3 in ap_child_terminate ()
#18 0x80c6ae6 in ap_child_terminate ()
#19 0x80c7253 in main ()
#20 0x400e8212 in __libc_start_main () from /lib/libc.so.6
Full Bug description available at: http://bugs.php.net/version4/?id=2047