From: Antony Dovgal Date: Thu, 13 Jul 2006 12:00:17 +0000 (+0000) Subject: MFH: fix #38086 (stream_copy_to_stream() returns 0 when maxlen is bigger than the... X-Git-Tag: php-5.2.0RC1~110 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4902fc6c25d91b3a97656ef84b8382d1d1da5b24;p=php MFH: fix #38086 (stream_copy_to_stream() returns 0 when maxlen is bigger than the actual length) add tests --- diff --git a/NEWS b/NEWS index 24ffd4cd4d..f93b623285 100644 --- a/NEWS +++ b/NEWS @@ -82,6 +82,8 @@ PHP NEWS - Fixed memory leaks in openssl streams context options. (Pierre) - Fixed handling of extremely long paths inside tempnam() function. (Ilia) +- Fixed bug #38086 (stream_copy_to_stream() returns 0 when maxlen is bigger + than the actual length). (Tony) - Fixed bug #38072 (boolean arg for mysqli_autocommit() is always true on Solaris). (Tony) - Fixed bug #38067 (Parameters are not decoded from utf-8 when using encoding diff --git a/ext/standard/tests/file/bug38086.phpt b/ext/standard/tests/file/bug38086.phpt new file mode 100644 index 0000000000..ed8af75a4f --- /dev/null +++ b/ext/standard/tests/file/bug38086.phpt @@ -0,0 +1,46 @@ +--TEST-- +Bug #38086 (stream_copy_to_stream() returns 0 when maxlen is bigger than the actual length) +--FILE-- + +--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 diff --git a/ext/standard/tests/file/bug38086.txt b/ext/standard/tests/file/bug38086.txt new file mode 100644 index 0000000000..8e324724cb --- /dev/null +++ b/ext/standard/tests/file/bug38086.txt @@ -0,0 +1,5 @@ +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 diff --git a/ext/standard/tests/file/stream_copy_to_stream.phpt b/ext/standard/tests/file/stream_copy_to_stream.phpt new file mode 100644 index 0000000000..3f46eec0cd --- /dev/null +++ b/ext/standard/tests/file/stream_copy_to_stream.phpt @@ -0,0 +1,129 @@ +--TEST-- +stream_copy_to_stream() tests +--FILE-- + +--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 diff --git a/main/streams/streams.c b/main/streams/streams.c index 1f087f8879..12a6fa4d29 100755 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -1348,11 +1348,7 @@ PHPAPI size_t _php_stream_copy_to_stream(php_stream *src, php_stream *dest, size writeptr += didwrite; } } else { - if (maxlen == 0) { - return haveread; - } else { - return 0; /* error */ - } + return haveread; } if (maxlen - haveread == 0) {