php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #10229 buffer error in fread
Submitted: 2001-04-07 19:25 UTC Modified: 2001-11-19 05:43 UTC
From: apeeters at lashout dot net Assigned:
Status: Closed Package: Filesystem function related
PHP Version: 4.0.3pl1 4.0.4pl1 4.0.5 4.0.6 OS: linux 2.2.14C11
Private report: No CVE-ID: None
 [2001-04-07 19:25 UTC] apeeters at lashout dot net
While running the following code, I got weird results in my mailbox.  It seemed like I got the entire buffer of 100000 bytes mailed, instead of only the length of the result of the url.  And those mails contained php code from another site hosted at the same server.  This worries me, and I think this needs a serious checkup.
The bug is reproducible :)

---start---
$fp = fopen("http://someurl/", "r");
$content = fread($fp, 100000);
mail("someone@somehost", "test", $content);
---stop---

Additional info:
'./configure' '--prefix=/usr' '--with-apxs=/usr/sbin/apxs' '--with-gd' '--with-gettext=/usr' '--enable-safe-mode' '--with-config-file-path=/etc/httpd' '--with-exec-dir=/usr/bin' '--with-zlib' '--enable-magic-quotes' '--with-regex=system' '--with-ttf=/usr/lib/libttf.so' '--enable-track-vars' '--enable-xml' '--disable-debug' '--with-db3' '--with-interbase=shared' '--with-pgsql=shared' '--with-ldap' '--with-imap'

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-04-07 19:46 UTC] cnewbill@php.net
Can't reproduce with CVS version.  Try upgrading to the newest release 4.04pl1 or grab a CVS snapshot from http://snaps.php.net/

What URL is it that is doing this? Or is it every URL?

-Chris
 [2001-04-07 20:17 UTC] apeeters at lashout dot net
I've been testing a bit more and have a clear reproducible codesnippet, it yields the same results in php 4.0.4p1, so I changed the PHP version for this bugreport.

---start---
$fp = fopen("http://www.newsplanet.be/", "r");
$content = fread($fp, 100000);
fclose($fp);

$fp = fopen("http://www.google.com/", "r");
$content = fread($fp, 100000);

mail("me@host", "topic", $content);
---stop---

In this mail, I see the sourcecode from google.com followed by the rest of the code from newsplanet.be.  This does occur in about 1/3 of the mails I try, although I'm unable to see why this isn't always the case.

 [2001-04-07 20:51 UTC] cnewbill@php.net
I ran it through a couple hundred times and absolutely no PHP code whatsoever.

The only problem I see here is $content is never cleaned up properly and contains BOTH of the fread()s jumbled.  Which is very strange.

$fp = fopen("http://www.newsplanet.be/", "r");
while (!feof($fp)) $content .= fread($fp, 4000);
fclose($fp);

You would be better off using the above as it works properly.

Whomever is handling the fopen-wrappers should probably look at this.

-Chris
 [2001-04-08 05:04 UTC] apeeters at lashout dot net
I have only seen php code once, and I was't able to reproduce it.  I suppose it was a case where php code was stored in a variable (for online editing or something).  This is only a guess, as it's not my code that I see, but code from someone else on the same server.
 [2001-04-27 15:34 UTC] cnewbill@php.net
I assume this is a dead issue.  If not reopen.

-Chris
 [2001-07-06 05:09 UTC] apeeters at lashout dot net
This error still exists, not de phpcode part, but the buffering errors, try this several times:

---start---
$fp = fopen("http://www.planetinternet.be/nl/vandaag/", "r");
$content = fread($fp, 100000);
fclose($fp);

$fp = fopen("http://www.google.com/", "r");
$content = fread($fp, 100000);

mail("me@host", "topic", $content);
---stop---

This is an error in the buffer handling routines and should be eliminated.  It seems to occur at _every_ request with php4.0.6 !
 [2001-10-29 02:41 UTC] sniper@php.net
Please try latest CVS snapshot from http://snaps.php.net/
as I think this should be fixed now.

--Jani

 [2001-11-19 05:43 UTC] sander@php.net
No feedback. Closing.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 13:01:31 2024 UTC