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

Reply via email to