From: sbrown at truckstuffusa dot com
Operating system: Redhat 9
PHP version: 4.3.8
PHP Bug Type: Reproducible crash
Bug description: segmentation fault in ftp_get/memchr()
Description:
------------
I'm using PHP 4.3.8 in CLI on a Redhat 9 server. Using the FTP functions
to backup some files via FTP. The script connects to a server via FTP,
downloads some files and tars them up. I'm getting an intermittent
segfault during the download process. By "intermittent", I mean that the
fault does not occur every time, nor does it occur after downloading the
same file every time. I am connecting to a windows-based host if that
matters. I have been able to reproduce this crash on two different
systems:
================================
System 1:
Redhat 9
PHP 4.3.8 compiled as Apache2 module
SMP-based system
Config.nice: './configure' \
'--with-mysql' \
'--with-apxs2=/pub/apache/bin/apxs' \
'--with-mcrypt=/usr/local/lib' \
'--with-curl=/usr/local' \
'--enable-ftp' \
'--with-imap=/usr/local/imap' \
'--with-jpeg' \
'--with-jpeg-dir=/usr/local/lib' \
'--with-png' \
'--with-png-dir=/usr/local/lib' \
'--with-zlib-dir=/usr/local/lib' \
'--with-gd' \
'--with-freetype' \
'--with-freetype-dir=/usr/local/lib' \
'--with-ttf' \
'--enable-debug' \
"$@"
=====================================
System 2:
Redhat 9
PHP 4.3.8 compiled as Apache2 module
Single CPU
Config.nice: './configure' \
'--with-mysql' \
'--with-apxs2=/pub/apache/bin/apxs' \
'--enable-ftp' \
'--enable-debug' \
"$@"
==========================
When this fault occurs, both systems produce identical backtraces:
Program received signal SIGSEGV, Segmentation fault.
0x4207bb01 in memchr () from /lib/tls/libc.so.6
(gdb) bt
#0 0x4207bb01 in memchr () from /lib/tls/libc.so.6
#1 0x0807ebb0 in ftp_get (ftp=0x8366c4c, outstream=0x83a22f4,
path=0x839bcb4 "/x-stuff/ssl/reconcilepo.php", type=FTPTYPE_ASCII,
resumepos=0)
at /usr/local/src/php-4.3.8/ext/ftp/ftp.c:730
#2 0x0807bf69 in zif_ftp_get (ht=4, return_value=0x839da54, this_ptr=0x0,
return_value_used=1) at /usr/local/src/php-4.3.8/ext/ftp/php_ftp.c:637
#3 0x081ecfb0 in execute (op_array=0x836c920) at
/usr/local/src/php-4.3.8/Zend/zend_execute.c:1635
#4 0x081ed22b in execute (op_array=0x836d648) at
/usr/local/src/php-4.3.8/Zend/zend_execute.c:1679
#5 0x081ed22b in execute (op_array=0x8366b74) at
/usr/local/src/php-4.3.8/Zend/zend_execute.c:1679
#6 0x081d9783 in zend_execute_scripts (type=8, retval=0x0, file_count=3)
at /usr/local/src/php-4.3.8/Zend/zend.c:891
#7 0x0819e9b7 in php_execute_script (primary_file=0xbffffad0) at
/usr/local/src/php-4.3.8/main/main.c:1734
#8 0x081f3e3d in main (argc=2, argv=0xbffffb64) at
/usr/local/src/php-4.3.8/sapi/cli/php_cli.c:822
--
Edit bug report at http://bugs.php.net/?id=30027&edit=1
--
Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=30027&r=trysnapshot4
Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=30027&r=trysnapshot50
Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=30027&r=trysnapshot51
Fixed in CVS: http://bugs.php.net/fix.php?id=30027&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=30027&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=30027&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=30027&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=30027&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=30027&r=support
Expected behavior: http://bugs.php.net/fix.php?id=30027&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=30027&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=30027&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=30027&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=30027&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=30027&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=30027&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=30027&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=30027&r=float
MySQL Configuration Error: http://bugs.php.net/fix.php?id=30027&r=mysqlcfg