| Bug #21815 | Buffer loss with fpassthru on popen | ||||
|---|---|---|---|---|---|
| Submitted: | 2003-01-22 04:01 UTC | Modified: | 2003-02-12 19:26 UTC | ||
| From: | stefan at fostam dot franken dot de | Assigned: | wez (profile) | ||
| Status: | Closed | Package: | Filesystem function related | ||
| PHP Version: | 4.3.0 | OS: | Linux 2.4 | ||
| Private report: | No | CVE-ID: | None | ||
When calling fpassthru() on a file pointer opened with popen(), it fails if there has been already read from that pointer. $fp = popen("/bin/ls /", "r"); if ($fp) { $line = fgets($fp, 1024); print $line; fpassthru($fp); } Results in the following error: fpassthru(): 77 bytes of buffered data lost during conversion to FILE*! The same script works fine with php 4.2.3. It also works fine if there hasn't been read from the file before (i.e. omitting the fgets() line in above example).