#46873 [Com]: Bus error: 10 (core dumped) in zend_hash.c

From: Date: Mon, 15 Dec 2008 19:43:08 +0000
Subject: #46873 [Com]: Bus error: 10 (core dumped) in zend_hash.c
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-131998@lists.php.net to get a copy of this message
ID: 46873 Comment by: christian at enovo dot dk Reported By: christian at enovo dot dk Status: Open Bug Type: Reproducible crash Operating System: FreeBSD 7.1-PRERELEASE #0 PHP Version: 5.2.8 New Comment: The issue does not exist with php 5.2.6 - but in 5.2.7/8 only. Both with and without the Suhosin patch Previous Comments: ------------------------------------------------------------------------ [2008-12-15 19:41:35] christian at enovo dot dk Description: ------------ Failing server: FreeBSD fox.enovo.dk 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #0: Sat Nov 1 17:48:22 UTC 2008 jippignu@fox.enovo.dk:/usr/obj/usr/src/sys/Fox amd64 PHP 5.2.8 (cli) (built: Dec 15 2008 16:38:16) (DEBUG) Working server: FreeBSD cox.enovo.dk 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #1: Sat Nov 1 16:45:54 UTC 2008 jippignu@cox.enovo.dk:/usr/obj/usr/src/sys/Cox amd64 PHP 5.2.6 with Suhosin-Patch 0.9.6.2 (cli) (built: Oct 8 2008 21:37:20) Trace: GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... Core was generated by `php'. Program terminated with signal 10, Bus error. Reading symbols from /lib/libcrypt.so.4...done. Loaded symbols for /lib/libcrypt.so.4 Reading symbols from /lib/libz.so.4...done. Loaded symbols for /lib/libz.so.4 Reading symbols from /usr/local/lib/libexslt.so.8...done. Loaded symbols for /usr/local/lib/libexslt.so.8 Reading symbols from /lib/libm.so.5...done. Loaded symbols for /lib/libm.so.5 Reading symbols from /usr/local/lib/libmcrypt.so.8...done. Loaded symbols for /usr/local/lib/libmcrypt.so.8 Reading symbols from /usr/local/lib/libltdl.so.4...done. Loaded symbols for /usr/local/lib/libltdl.so.4 Reading symbols from /usr/local/lib/libintl.so.8...done. Loaded symbols for /usr/local/lib/libintl.so.8 Reading symbols from /usr/local/lib/libpng.so.5...done. Loaded symbols for /usr/local/lib/libpng.so.5 Reading symbols from /usr/local/lib/libjpeg.so.9...done. Loaded symbols for /usr/local/lib/libjpeg.so.9 Reading symbols from /usr/lib/libssl.so.5...done. Loaded symbols for /usr/lib/libssl.so.5 Reading symbols from /lib/libcrypto.so.5...done. Loaded symbols for /lib/libcrypto.so.5 Reading symbols from /usr/lib/libbz2.so.3...done. Loaded symbols for /usr/lib/libbz2.so.3 Reading symbols from /usr/local/lib/libcurl.so.4...done. Loaded symbols for /usr/local/lib/libcurl.so.4 Reading symbols from /usr/local/lib/libcares.so.1...done. Loaded symbols for /usr/local/lib/libcares.so.1 Reading symbols from /usr/local/lib/mysql/libmysqlclient.so.15...done. Loaded symbols for /usr/local/lib/mysql/libmysqlclient.so.15 Reading symbols from /usr/local/lib/libxslt.so.2...done. Loaded symbols for /usr/local/lib/libxslt.so.2 Reading symbols from /usr/local/lib/libxml2.so.5...done. Loaded symbols for /usr/local/lib/libxml2.so.5 Reading symbols from /usr/local/lib/libiconv.so.3...done. Loaded symbols for /usr/local/lib/libiconv.so.3 Reading symbols from /lib/libc.so.7...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /usr/local/lib/php/20060613-debug/apc.so...done. Loaded symbols for /usr/local/lib/php/20060613-debug/apc.so Reading symbols from /usr/lib/librt.so.1...done. Loaded symbols for /usr/lib/librt.so.1 Reading symbols from /usr/local/lib/php/20060613- debug/fileinfo.so...done. Loaded symbols for /usr/local/lib/php/20060613-debug/fileinfo.so Reading symbols from /usr/lib/libmagic.so.3...done. Loaded symbols for /usr/lib/libmagic.so.3 Reading symbols from /libexec/ld-elf.so.1...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x000000000082f88c in zend_hash_get_current_data_ex (ht=0xe24ed8, pData=0x7fffffffbdd8, pos=0x7fffffffbd98) at /usr/home/php/php-5.2.8/Zend/zend_hash.c:1163 1163 *pData = p->pData; (gdb) bt #0 0x000000000082f88c in zend_hash_get_current_data_ex (ht=0xe24ed8, pData=0x7fffffffbdd8, pos=0x7fffffffbd98) at /usr/home/php/php-5.2.8/Zend/zend_hash.c:1163 #1 0x00000000006f3da3 in zif_extract (ht=2, return_value=0xe21048, return_value_ptr=0x0, this_ptr=0x0, return_value_used=0) at /usr/home/php/php- 5.2.8/ext/standard/array.c:1396 #2 0x000000000084b13b in zend_do_fcall_common_helper_SPEC (execute_data=0x7fffffffc420) at zend_vm_execute.h:200 #3 0x0000000000851d80 in ZEND_DO_FCALL_SPEC_CONST_HANDLER (execute_data=0x7fffffffc420) at zend_vm_execute.h:1729 #4 0x000000000084ab70 in execute (op_array=0xe24228) at zend_vm_execute.h:92 #5 0x000000000084b31c in zend_do_fcall_common_helper_SPEC (execute_data=0x7fffffffc9e0) at zend_vm_execute.h:234 #6 0x000000000084c035 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0x7fffffffc9e0) at zend_vm_execute.h:322 #7 0x000000000084ab70 in execute (op_array=0xe24228) at zend_vm_execute.h:92 #8 0x000000000084b31c in zend_do_fcall_common_helper_SPEC (execute_data=0x7fffffffcd00) at zend_vm_execute.h:234 #9 0x000000000084c035 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0x7fffffffcd00) at zend_vm_execute.h:322 #10 0x000000000084ab70 in execute (op_array=0xe1f428) at zend_vm_execute.h:92 #11 0x0000000000820150 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/home/php/php- 5.2.8/Zend/zend.c:1134 #12 0x00000000007c031c in php_execute_script (primary_file=0x7fffffffe640) at /usr/home/php/php- 5.2.8/main/main.c:2023 #13 0x00000000008acd0d in main (argc=2, argv=0x7fffffffe7d0) at /usr/home/php/php-5.2.8/sapi/cli/php_cli.c:1133 Reproduce code: --------------- <?php $data = array ( 'level0' => array( 'level1' ) ); // If you uncomment the following a blank screen is outputted. $flattened = Set::flatten($data); var_dump($flattened); class Set { function flatten($data, $separator = '.') { $result = array(); $path = null; if (is_array($separator)) { extract($separator, EXTR_OVERWRITE); } if (!is_null($path)) { $path .= $separator; } foreach ($data as $key => $val) { if (is_array($val)) { $result += (array)Set::flatten($val, array( 'separator' => $separator, 'path' => $path . $key )); } else { $result[$path . $key] = $val; } } return $result; } } Expected result: ---------------- array(1) { ["level0.0"]=> string(6) "level1" } Actual result: -------------- Bus error: 10 (core dumped) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46873&edit=1

« previous php.bugs (#131998) next »