mirror of
https://github.com/php/php-src.git
synced 2025-08-16 14:08:47 +02:00
Merge branch 'PHP-7.2'
* PHP-7.2: Fixes #68948 related to a BC break introduced by #68532 fix.
This commit is contained in:
commit
e36244e776
3 changed files with 37 additions and 5 deletions
30
ext/standard/tests/streams/bug68948.phpt
Normal file
30
ext/standard/tests/streams/bug68948.phpt
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
--TEST--
|
||||||
|
Bug #68948: feof() on temporary streams broken
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$testString = '0123456789';
|
||||||
|
|
||||||
|
$stream = fopen("php://memory", "r+");
|
||||||
|
fwrite($stream, $testString);
|
||||||
|
rewind($stream);
|
||||||
|
|
||||||
|
var_dump(fread($stream, 10));
|
||||||
|
var_dump(ftell($stream));
|
||||||
|
var_dump(feof($stream));
|
||||||
|
|
||||||
|
rewind($stream);
|
||||||
|
|
||||||
|
var_dump(fread($stream, 11));
|
||||||
|
var_dump(ftell($stream));
|
||||||
|
var_dump(feof($stream));
|
||||||
|
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
string(10) "0123456789"
|
||||||
|
int(10)
|
||||||
|
bool(false)
|
||||||
|
string(10) "0123456789"
|
||||||
|
int(10)
|
||||||
|
bool(true)
|
||||||
|
|
|
@ -39,7 +39,7 @@ var_dump(fwrite($f, str_repeat('b', 3)));
|
||||||
|
|
||||||
echo "should return previous chunk size (1)\n";
|
echo "should return previous chunk size (1)\n";
|
||||||
var_dump(stream_set_chunk_size($f, 100));
|
var_dump(stream_set_chunk_size($f, 100));
|
||||||
echo "should elicit one read of size 100 (chunk size)\n";
|
echo "should elicit 3 reads of size 100 (chunk size)\n";
|
||||||
var_dump(strlen(fread($f, 250)));
|
var_dump(strlen(fread($f, 250)));
|
||||||
echo "should elicit one read of size 100 (chunk size)\n";
|
echo "should elicit one read of size 100 (chunk size)\n";
|
||||||
var_dump(strlen(fread($f, 50)));
|
var_dump(strlen(fread($f, 50)));
|
||||||
|
@ -67,13 +67,15 @@ write with size: 1
|
||||||
int(3)
|
int(3)
|
||||||
should return previous chunk size (1)
|
should return previous chunk size (1)
|
||||||
int(1)
|
int(1)
|
||||||
should elicit one read of size 100 (chunk size)
|
should elicit 3 reads of size 100 (chunk size)
|
||||||
read with size: 100
|
read with size: 100
|
||||||
int(100)
|
|
||||||
should elicit one read of size 100 (chunk size)
|
|
||||||
read with size: 100
|
read with size: 100
|
||||||
|
read with size: 100
|
||||||
|
int(250)
|
||||||
|
should elicit one read of size 100 (chunk size)
|
||||||
int(50)
|
int(50)
|
||||||
should elicit no read because there is sufficient cached data
|
should elicit no read because there is sufficient cached data
|
||||||
|
read with size: 100
|
||||||
int(50)
|
int(50)
|
||||||
should elicit 2 writes of size 100 and one of size 50
|
should elicit 2 writes of size 100 and one of size 50
|
||||||
write with size: 100
|
write with size: 100
|
||||||
|
|
|
@ -705,7 +705,7 @@ PHPAPI size_t _php_stream_read(php_stream *stream, char *buf, size_t size)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* just break anyway, to avoid greedy read */
|
/* just break anyway, to avoid greedy read */
|
||||||
if (stream->wrapper != &php_plain_files_wrapper) {
|
if (!stream->wrapper || stream->wrapper->is_url) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue