ID: 30027
Comment by: cfield at affinitysolutions dot com
Reported By: sbrown at truckstuffusa dot com
Status: Open
Bug Type: FTP related
Operating System: Redhat 9
PHP Version: 4.3.8
New Comment:
I have the same problem on an SMP redhat 9 system, i can get it to stop
the segmentation faults by adding "((e-ptr)>0) &&" to the while loop
condition on line 732 of ftp.c, however now i am getting sporadic extra
newlines (always in the same places in the file,see below for line
numbers etc. ) however, if i slowly step through the interaction it
does not put the extra new line in....
line number written bytes total bytes
504 126475 126475
689 46333 172808
2589 474698 647506
3088 105999 753505
3766 145320 898825
5005 304503 1203328
5163 40804 1244132
5221 12232 1256364
5587 91208 1347572
7454 424119 1771691
7790 80126 1851817
10501 686879 2538696
10680 42243 2580939
12103 361663 2942602
13382 311479 3254081
13921 137267 3391348
16803 724748 4116096
18468 414953 4531049
18654 43412 4574461
18934 63798 4638259
18988 13696 4651955
20429 349357 5001312
21981 390490 5391802
25524 906947 6298749
27445 448641 6747390
29239 497920 7245310
30083 220342 7465652
30274 46327 7511979
31340 270732 7782711
32882 353352 8136063
33421 123803 8259866
34365 224338 8484204
36254 449849 8934053
Previous Comments:
------------------------------------------------------------------------
[2004-09-17 16:25:50] sbrown at truckstuffusa dot com
Downloaded CVS last night, still get the seg fault:
# php --version
PHP 4.3.9RC4-dev (cgi) (built: Sep 17 2004 09:19:39) (DEBUG)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
# gdb php
(gdb) run script-backup
Starting program: /usr/local/bin/php script-backup
...
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 0x0805eaa8 in ftp_get (ftp=0x81828ac, outstream=0x81a6afc,
path=0x81a6604 "/x-stuff/php/dashboard_projectmgmt.php",
type=FTPTYPE_ASCII, resumepos=0)
at /usr/local/src/php-src/ext/ftp/ftp.c:730
#2 0x0805c141 in zif_ftp_get (ht=4, return_value=0x81a6184,
this_ptr=0x0, return_value_used=1) at
/usr/local/src/php-src/ext/ftp/php_ftp.c:637
#3 0x0811cb8f in execute (op_array=0x81885b8) at
/usr/local/src/php-src/Zend/zend_execute.c:1640
#4 0x0811cdbb in execute (op_array=0x8189310) at
/usr/local/src/php-src/Zend/zend_execute.c:1684
#5 0x0811cdbb in execute (op_array=0x81827d4) at
/usr/local/src/php-src/Zend/zend_execute.c:1684
#6 0x0810ac19 in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at /usr/local/src/php-src/Zend/zend.c:891
#7 0x080d6795 in php_execute_script (primary_file=0xbffff0e0) at
/usr/local/src/php-src/main/main.c:1735
#8 0x081238cc in main (argc=2, argv=0xbffff184) at
/usr/local/src/php-src/sapi/cgi/cgi_main.c:1592
(gdb) up
#1 0x0805eaa8 in ftp_get (ftp=0x81828ac, outstream=0x81a6afc,
path=0x81a6604 "/x-stuff/php/dashboard_projectmgmt.php",
type=FTPTYPE_ASCII, resumepos=0)
at /usr/local/src/php-src/ext/ftp/ftp.c:730
730 while ((s = memchr(ptr, '\r', (e -
ptr)))) {
(gdb) p s
$1 = 0x81a6e57 "\n var contacts_win = "
(gdb) p ptr
$2 = 0x81a6e58 " var contacts_win = "
(gdb) p e
$3 = 0x81a6c4a "\n<tcus();\r\n}\r\n-->\r\n</script>\r\n<?\r\nif
(isset($_GET['publisher']))\r\n echo '<form name=\"frm_deleteprj\"
action=\"'.$_SERVER['PHP_SELF'].'?publisher='.$publisher.'\"
method=POST>';\r\n elseif (isset($_GET['s"...
(gdb)
------------------------------------------------------------------------
[2004-09-16 10:48:10] [EMAIL PROTECTED]
Get the latest stable CVS snapshot of PHP 4 and configure it with this
line:
# ./configure --disable-all --enable-ftp --enable-debug
Run your script in command line instead and try to generate the gdb
backtrace with it.
------------------------------------------------------------------------
[2004-09-08 18:11:30] sbrown at truckstuffusa dot com
And just in case, here's the bt:
(gdb) bt
#0 0x4207bae0 in memchr () from /lib/tls/libc.so.6
#1 0x0807ebb0 in ftp_get (ftp=0x8366c4c, outstream=0x83a0fdc,
path=0x83991cc "/x-stuff/mir_libraries/lib-htmlMimeMail.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=0x83a0f9c,
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
(gdb)
------------------------------------------------------------------------
[2004-09-08 18:10:00] sbrown at truckstuffusa dot com
Program received signal SIGSEGV, Segmentation fault.
0x4207bae0 in memchr () from /lib/tls/libc.so.6
(gdb) up
#1 0x0807ebb0 in ftp_get (ftp=0x8366c4c, outstream=0x83a0fdc,
path=0x83991cc "/x-stuff/mir_libraries/lib-htmlMimeMail.php",
type=FTPTYPE_ASCII, resumepos=0)
at /usr/local/src/php-4.3.8/ext/ftp/ftp.c:730
730 while ((s = memchr(ptr, '\r', (e -
ptr)))) {
(gdb) p s
$1 = 0x83a0ea9 "\r:\b�\016:\b\f"
(gdb) p ptr
$2 = 0x83a0eaa ":\b�\016:\b\f"
(gdb) p e
$3 = 0x838be9c "\n\t\t\t\t\t$content_type =
$this->image_types[strtolower($ext)];\r\n\t\t\t\t\t$this->addHtmlImage($image,
basename($html_images[$i]),
$content_type);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n/**\r\n*
Adds an image to the list of e"...
(gdb)
------------------------------------------------------------------------
[2004-09-08 17:37:47] [EMAIL PROTECTED]
In gdb for that core, could you type:
up
p s
p ptr
p e
and add the output to this bug please.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/30027
--
Edit this bug report at http://bugs.php.net/?id=30027&edit=1