php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #28993 This script causes crash
Submitted: 2004-07-02 14:23 UTC Modified: 2004-07-04 18:49 UTC
From: osvetlik at kerio dot com Assigned:
Status: Closed Package: Reproducible crash
PHP Version: 4.3.6, 4.3.7 OS: Linux/Windows
Private report: No CVE-ID: None
 [2004-07-02 14:23 UTC] osvetlik at kerio dot com
Description:
------------
The script as shown below crashes PHP, when memory_limit is high enough.

Reproduce code:
---------------
(pts/103)osvetlik@osvetlik:~> php
<?php
  
$x = array("nazdar");
  
while (true) {
        $x = array_merge($x, $x);
}
  
?>
Segmentation fault (core dumped)


Expected result:
----------------
No crash, endless loop. Script stopped by memory_limit.

Actual result:
--------------
(pts/103)osvetlik@osvetlik:~> gdb /usr/bin/php core.28409
GNU gdb Red Hat Linux (6.0post-0.20040223.19rh)
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 "i386-redhat-linux-gnu"...(no debugging symbols found)...Using host libthread_db library "/lib/tls/libthread_db.so.1".
 
Core was generated by `php'.
Program terminated with signal 11, Segmentation fault.
 
warning: svr4_current_sos: Can't read pathname for load map: Chyba vstupu/v?stupu
 
Error while mapping shared library sections:
: ?sp?ch.
Error while reading shared library symbols:
: nen? souborem ani adres??em.
Reading symbols from /lib/libcrypt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libnsl.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /usr/lib/libexpat.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libexpat.so.0
Reading symbols from /usr/lib/libpspell.so.15...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libpspell.so.15
Reading symbols from /lib/libpcre.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libpcre.so.0
Reading symbols from /usr/lib/libpanel.so.5...done.
Loaded symbols for /usr/lib/libpanel.so.5
Reading symbols from /usr/lib/libncurses.so.5...done.
Loaded symbols for /usr/lib/libncurses.so.5
Reading symbols from /usr/lib/sse2/libgmp.so.3...done.
Loaded symbols for /usr/lib/sse2/libgmp.so.3
Reading symbols from /usr/lib/libfreetype.so.6...done.
Loaded symbols for /usr/lib/libfreetype.so.6
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /usr/lib/libpng12.so.0...done.
Loaded symbols for /usr/lib/libpng12.so.0
Reading symbols from /usr/lib/libjpeg.so.62...done.
Loaded symbols for /usr/lib/libjpeg.so.62
Reading symbols from /lib/tls/libdb-4.2.so...done.
Loaded symbols for /lib/tls/libdb-4.2.so
Reading symbols from /lib/tls/libpthread.so.0...done.
Loaded symbols for /lib/tls/libpthread.so.0
Reading symbols from /usr/lib/libcurl.so.2...done.
Loaded symbols for /usr/lib/libcurl.so.2
Reading symbols from /usr/lib/libbz2.so.1...done.
Loaded symbols for /usr/lib/libbz2.so.1
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/tls/libm.so.6...done.
Loaded symbols for /lib/tls/libm.so.6
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libssl.so.4...done.
Loaded symbols for /lib/libssl.so.4
Reading symbols from /lib/libcrypto.so.4...done.
Loaded symbols for /lib/libcrypto.so.4
Reading symbols from /usr/lib/libgssapi_krb5.so.2...done.
Loaded symbols for /usr/lib/libgssapi_krb5.so.2
Reading symbols from /usr/lib/libkrb5.so.3...done.
Loaded symbols for /usr/lib/libkrb5.so.3
Reading symbols from /lib/libcom_err.so.2...done.
Loaded symbols for /lib/libcom_err.so.2
Reading symbols from /usr/lib/libk5crypto.so.3...done.
Loaded symbols for /usr/lib/libk5crypto.so.3
Reading symbols from /lib/tls/libc.so.6...done.
Loaded symbols for /lib/tls/libc.so.6
Reading symbols from /usr/lib/libaspell.so.15...done.
Loaded symbols for /usr/lib/libaspell.so.15
Reading symbols from /usr/lib/libstdc++.so.5...done.
Loaded symbols for /usr/lib/libstdc++.so.5
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /usr/lib/php4/ldap.so...done.
Loaded symbols for /usr/lib/php4/ldap.so
Reading symbols from /usr/lib/libldap.so.2...done.
Loaded symbols for /usr/lib/libldap.so.2
Reading symbols from /usr/lib/liblber.so.2...done.
Loaded symbols for /usr/lib/liblber.so.2
Reading symbols from /usr/lib/libsasl2.so.2...done.
Loaded symbols for /usr/lib/libsasl2.so.2
Reading symbols from /usr/lib/php4/mysql.so...done.
Loaded symbols for /usr/lib/php4/mysql.so
Reading symbols from /usr/lib/mysql/libmysqlclient.so.10...done.
Loaded symbols for /usr/lib/mysql/libmysqlclient.so.10
Reading symbols from /usr/lib/php4/odbc.so...done.
Loaded symbols for /usr/lib/php4/odbc.so
Reading symbols from /usr/lib/libodbc.so.1...done.
Loaded symbols for /usr/lib/libodbc.so.1
Reading symbols from /usr/lib/libodbcpsql.so.2...done.
Loaded symbols for /usr/lib/libodbcpsql.so.2
Reading symbols from /usr/lib/libltdl.so.3...done.
Loaded symbols for /usr/lib/libltdl.so.3
Reading symbols from /usr/lib/php4/pgsql.so...done.
Loaded symbols for /usr/lib/php4/pgsql.so
Reading symbols from /usr/lib/libpq.so.3...done.
Loaded symbols for /usr/lib/libpq.so.3
#0  0x009d120c in _int_free () from /lib/tls/libc.so.6
(gdb) bt
#0  0x009d120c in _int_free () from /lib/tls/libc.so.6
#1  0x009d273b in free () from /lib/tls/libc.so.6
#2  0x08185112 in _efree ()
#3  0x08196df8 in zend_hash_destroy ()
#4  0x08191723 in _zval_dtor ()
#5  0x0818b3b8 in _zval_ptr_dtor ()
#6  0x08196e18 in zend_hash_destroy ()
#7  0x08191723 in _zval_dtor ()
#8  0x0818b3b8 in _zval_ptr_dtor ()
#9  0x08196e18 in zend_hash_destroy ()
#10 0x08191723 in _zval_dtor ()
#11 0x0818b3b8 in _zval_ptr_dtor ()
#12 0x08196e18 in zend_hash_destroy ()
#13 0x08191723 in _zval_dtor ()
#14 0x0818b3b8 in _zval_ptr_dtor ()
#15 0x0819f70d in execute ()
#16 0x08192c19 in zend_execute_scripts ()
#17 0x0816aeed in php_execute_script ()
#18 0x081a479f in main ()
(gdb)


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-07-02 14:32 UTC] osvetlik at kerio dot com
4.3.6 crashes too.
 [2004-07-04 18:49 UTC] iliaa@php.net
This is fixed in PHP5. In PHP4 it cannot be fixed without 
breaking backwards compatibility. 
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed Sep 18 21:01:26 2024 UTC