ID: 38756
Updated by: [EMAIL PROTECTED]
Reported By: adam at aers dot ca
-Status: Open
+Status: Wont fix
Bug Type: Class/Object related
Operating System: Linux
PHP Version: 4.4.4
New Comment:
See bug #36793.
Previous Comments:
------------------------------------------------------------------------
[2006-09-08 21:55:55] adam at aers dot ca
Description:
------------
Returning large numbers of objects in an array seems to cause
segmentation faults or other memory related errors.
Our memory limit is set to 1024M; that should be the only non-standard
setting.
PHP Version => 4.4.4-pl2-gentoo
System => Linux nitrogen 2.6.13-gentoo-r3 #2 SMP Thu Oct 20 19:23:03
PDT 2005 x86_64
Build Date => Sep 7 2006 16:19:50
Configure Command => './configure' '--prefix=/usr/lib64/php4'
'--host=x86_64-pc-linux-gnu' '--mandir=/usr/lib64/php4/man'
'--infodir=/usr/lib64/php4/info' '-
-sysconfdir=/etc' '--cache-file=./config.cache' '--with-libdir=lib64'
'--enable-cli' '--disable-cgi'
'--with-config-file-path=/etc/php/cli-php4' '--with-confi
g-file-scan-dir=/etc/php/cli-php4/ext-active' '--without-pear'
'--disable-bcmath' '--with-bz2' '--disable-calendar' '--disable-ctype'
'--with-curl' '--disable
-dbase' '--with-dom' '--disable-exif' '--without-fbsql'
'--without-fdftk' '--disable-filepro' '--enable-ftp' '--with-gettext'
'--with-gmp' '--without-hwapi' '
--without-iconv' '--without-informix' '--without-kerberos'
'--disable-mbstring' '--with-mcal=/usr' '--with-mcrypt'
'--without-mcve' '--enable-memory-limit' '-
-without-mhash' '--without-ming' '--without-mnogosearch'
'--without-msql' '--without-mssql' '--with-ncurses' '--without-oci8'
'--without-oci8-instant-client'
'--without-oracle' '--with-openssl' '--with-openssl-dir=/usr'
'--disable-overload' '--without-ovrimos' '--enable-pcntl'
'--without-pfpro' '--with-pgsql' '--wi
th-pspell' '--without-recode' '--enable-shmop' '--without-snmp'
'--enable-sockets' '--without-sybase' '--without-sybase-ct'
'--enable-sysvmsg' '--enable-sysvs
em' '--enable-sysvshm' '--disable-tokenizer' '--disable-wddx'
'--disable-xml' '--without-xmlrpc' '--with-zlib' '--disable-debug'
'--enable-dba' '--without-cdb
' '--with-db4' '--without-flatfile' '--without-gdbm'
'--without-inifile' '--disable-dbx' '--with-freetype-dir=/usr'
'--with-t1lib=/usr' '--disable-gd-jis-conv
' '--enable-gd-native-ttf' '--with-jpeg-dir=/usr' '--with-png-dir=/usr'
'--with-xpm-dir=/usr/X11R6' '--with-gd' '--with-imap' '--with-imap-ssl'
'--with-mysql=
/usr' '--with-mysql-sock=/var/run/mysqld/mysqld.sock'
'--with-unixODBC=/usr' '--without-adabas' '--without-birdstep'
'--without-dbmaker' '--without-empress' '
--without-esoob' '--without-ibm-db2' '--without-iodbc'
'--without-sapdb' '--without-solid' '--with-readline'
'--without-libedit' '--disable-xslt' '--without-x
slt-sablot' '--without-dom-xslt' '--without-dom-exslt' '--with-mm'
'--disable-zend-memory-manager'
Reproduce code:
---------------
testFunc();
function testFunc(){
for( $i =0; $i < 100000; $i++ ){
$line = new ReportLine();
for( $j = 0; $j < 40; $j++ ){
$line->addData("this is a bug");
}
$lines[] = $line;
}
return $lines;
}
class ReportLine{
var $bool;// = true;
function ReportLine(){
// $this->bool = true;
}
function addData($value){
if( $this->bool ) $this->data[] = $value;
}
}
Expected result:
----------------
No output.
Actual result:
--------------
This results in a segfault. (Some values of the i limit gave me ***
glibc detected *** double free or corruption (fasttop):
0x0000000000XXXXXX ***) Lower values for the $i counter will result in
things running okay. Try setting it higher if the issue doesn't occur.
Removing the var declaration will fix the problem. Assigning a value to
it during the declaration will have no affect on the bug. Assigning a
value in the constructor - with or without a var declaration - will
cause things to work fine.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=38756&edit=1