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"; 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

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 */ /* just break anyway, to avoid greedy read */
if (stream->wrapper != &php_plain_files_wrapper) { if (!stream->wrapper || stream->wrapper->is_url) {
break; break;
} }
} }