Merge branch 'PHP-7.2'

* PHP-7.2:
  Fixes #68948 related to a BC break introduced by #68532 fix.
This commit is contained in:
Sara Golemon 2017-11-06 17:41:09 -05:00
commit e36244e776
3 changed files with 37 additions and 5 deletions

View 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)

View file

@ -39,7 +39,7 @@ var_dump(fwrite($f, str_repeat('b', 3)));
echo "should return previous chunk size (1)\n";
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)));
echo "should elicit one read of size 100 (chunk size)\n";
var_dump(strlen(fread($f, 50)));
@ -67,13 +67,15 @@ write with size: 1
int(3)
should return previous chunk size (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
int(100)
should elicit one read of size 100 (chunk size)
read with size: 100
read with size: 100
int(250)
should elicit one read of size 100 (chunk size)
int(50)
should elicit no read because there is sufficient cached data
read with size: 100
int(50)
should elicit 2 writes of size 100 and one of size 50
write with size: 100

View file

@ -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 */
if (stream->wrapper != &php_plain_files_wrapper) {
if (!stream->wrapper || stream->wrapper->is_url) {
break;
}
}