tony2001 Thu Jul 13 11:58:42 2006 UTC
Added files:
/php-src/ext/standard/tests/file bug38086.phpt bug38086.txt
stream_copy_to_stream.phpt
Modified files:
/php-src/main/streams streams.c
Log:
fix #38086 (stream_copy_to_stream() returns 0 when maxlen is bigger than the
actual length)
http://cvs.php.net/viewvc.cgi/php-src/main/streams/streams.c?r1=1.127&r2=1.128&diff_format=u
Index: php-src/main/streams/streams.c
diff -u php-src/main/streams/streams.c:1.127
php-src/main/streams/streams.c:1.128
--- php-src/main/streams/streams.c:1.127 Wed Jun 21 20:17:21 2006
+++ php-src/main/streams/streams.c Thu Jul 13 11:58:42 2006
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streams.c,v 1.127 2006/06/21 20:17:21 andrei Exp $ */
+/* $Id: streams.c,v 1.128 2006/07/13 11:58:42 tony2001 Exp $ */
#define _GNU_SOURCE
#include "php.h"
@@ -1810,11 +1810,7 @@
writeptr += didwrite;
}
} else {
- if (maxlen == 0) {
- return haveread;
- } else {
- return 0; /* error */
- }
+ return haveread;
}
if (maxlen - haveread == 0) {
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/bug38086.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/bug38086.phpt
+++ php-src/ext/standard/tests/file/bug38086.phpt
--TEST--
Bug #38086 (stream_copy_to_stream() returns 0 when maxlen is bigger than the
actual length)
--FILE--
<?php
$initial_file = dirname(__FILE__).'/bug38086.txt';
$new_file = dirname(__FILE__).'/bug38086_1.txt';
$src = fopen($initial_file, 'r');
stream_filter_append($src, "string.rot13", STREAM_FILTER_READ);
$dest = fopen($new_file, 'w');
var_dump(stream_copy_to_stream($src, $dest));
fclose($src); fclose($dest);
var_dump(file_get_contents($new_file));
unlink($new_file);
$src = fopen($initial_file, 'r');
stream_filter_append($src, "string.rot13", STREAM_FILTER_READ);
$dest = fopen($new_file, 'w');
var_dump(stream_copy_to_stream($src, $dest, 10000));
fclose($src); fclose($dest);
var_dump(file_get_contents($new_file));
unlink($new_file);
echo "Done\n";
?>
--EXPECTF--
int(134)
string(134) "Nabgure qnl
Jura gur cnvaf bs yvsr jba'g one zl jnl
V'yy oernx gurfr punvaf
Gung ubyq zr qbja
V'yy grne lbh qbja vagb zl cevingr uryy
"
int(134)
string(134) "Nabgure qnl
Jura gur cnvaf bs yvsr jba'g one zl jnl
V'yy oernx gurfr punvaf
Gung ubyq zr qbja
V'yy grne lbh qbja vagb zl cevingr uryy
"
Done
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/bug38086.txt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/bug38086.txt
+++ php-src/ext/standard/tests/file/bug38086.txt
Another day
When the pains of life won't bar my way
I'll break these chains
That hold me down
I'll tear you down into my private hell
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/stream_copy_to_stream.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/file/stream_copy_to_stream.phpt
+++ php-src/ext/standard/tests/file/stream_copy_to_stream.phpt
--TEST--
stream_copy_to_stream() tests
--FILE--
<?php
$initial_file = dirname(__FILE__).'/bug38086.txt';
$new_file = dirname(__FILE__).'/bug38086_1.txt';
$src = fopen($initial_file, 'r');
stream_filter_append($src, "string.rot13", STREAM_FILTER_READ);
$dest = fopen($new_file, 'w');
var_dump(stream_copy_to_stream($src, $dest, 0));
fclose($src); fclose($dest);
var_dump(file_get_contents($new_file));
unlink($new_file);
/* --- */
$src = fopen($initial_file, 'r');
stream_filter_append($src, "string.rot13", STREAM_FILTER_READ);
$dest = fopen($new_file, 'w');
var_dump(stream_copy_to_stream($src, $dest, -1));
fclose($src); fclose($dest);
var_dump(file_get_contents($new_file));
unlink($new_file);
/* --- */
$src = fopen($initial_file, 'r');
stream_filter_append($src, "string.rot13", STREAM_FILTER_READ);
$dest = fopen($new_file, 'w');
var_dump(stream_copy_to_stream($src, $dest));
fclose($src); fclose($dest);
var_dump(file_get_contents($new_file));
unlink($new_file);
/* --- */
$src = fopen($initial_file, 'r');
$dest = fopen($new_file, 'w');
var_dump(stream_copy_to_stream($src, $dest));
fclose($src); fclose($dest);
var_dump(file_get_contents($new_file));
unlink($new_file);
/* --- */
$src = fopen($initial_file, 'r');
$dest = fopen($new_file, 'w');
var_dump(stream_copy_to_stream($src, $dest, 1000000));
fclose($src); fclose($dest);
var_dump(file_get_contents($new_file));
unlink($new_file);
/* --- */
$src = fopen($initial_file, 'r');
$dest = fopen($new_file, 'w');
var_dump(stream_copy_to_stream($src, $dest, 10));
fclose($src); fclose($dest);
var_dump(file_get_contents($new_file));
unlink($new_file);
/* --- */
$src = fopen($initial_file, 'r');
$dest = fopen($new_file, 'w');
var_dump(stream_copy_to_stream($src, $dest, -1));
fclose($src); fclose($dest);
var_dump(file_get_contents($new_file));
unlink($new_file);
echo "Done\n";
?>
--EXPECTF--
int(0)
string(0) ""
int(134)
string(134) "Nabgure qnl
Jura gur cnvaf bs yvsr jba'g one zl jnl
V'yy oernx gurfr punvaf
Gung ubyq zr qbja
V'yy grne lbh qbja vagb zl cevingr uryy
"
int(134)
string(134) "Nabgure qnl
Jura gur cnvaf bs yvsr jba'g one zl jnl
V'yy oernx gurfr punvaf
Gung ubyq zr qbja
V'yy grne lbh qbja vagb zl cevingr uryy
"
int(134)
string(134) "Another day
When the pains of life won't bar my way
I'll break these chains
That hold me down
I'll tear you down into my private hell
"
int(134)
string(134) "Another day
When the pains of life won't bar my way
I'll break these chains
That hold me down
I'll tear you down into my private hell
"
int(10)
string(10) "Another da"
int(134)
string(134) "Another day
When the pains of life won't bar my way
I'll break these chains
That hold me down
I'll tear you down into my private hell
"
Done
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php