php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #50196 stream_copy_to_stream() produces warning when source is not file
Submitted: 2009-11-16 22:08 UTC Modified: 2009-12-19 01:13 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: stas at zend dot com Assigned:
Status: Closed Package: Streams related
PHP Version: 5.2SVN-2009-11-16 (SVN) OS: win32 only
Private report: No CVE-ID:
 [2009-11-16 22:08 UTC] stas at zend dot com
Description:
------------
If I use stream_copy_to_stream with source stream being not file (say, HTTP socket) then I get this warning:

Warning: Invalid CRT parameters detected

This is because in _php_stream_copy_to_stream_ex() php_stream_stat() is applied to source stream, which goes to php_sockop_stat which calls fstat, which produces "invalid parameter" pseudo-exception. 

Reproduce code:
---------------
$socket = open_http_socket();
$fp = fopen("data", "w");
stream_copy_to_stream($socket, $fp);

Actual result:
--------------
Warning: Invalid CRT parameters detected

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-11-17 17:42 UTC] stas@php.net
Is it really that hard to find a script that opens http socket in the manual? OK, here it goes:

<?php
$socket = fsockopen("localhost", 80, $errno, $errstr, 30);
if (!$socket) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: localhost\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($socket, $out);
}
$fp = fopen("data", "w");
stream_copy_to_stream($socket, $fp);

 [2009-12-19 01:13 UTC] svn@php.net
Automatic comment from SVN on behalf of stas
Revision: http://svn.php.net/viewvc/?view=revision&revision=292309
Log: fix bug #50196
 [2009-12-19 01:13 UTC] stas@php.net
This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 [2009-12-19 01:15 UTC] svn@php.net
Automatic comment from SVN on behalf of stas
Revision: http://svn.php.net/viewvc/?view=revision&revision=292310
Log: Fixed bug #50196 stream_copy_to_stream() produces warning when source is not file
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Sun Apr 20 13:01:59 2014 UTC