Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions ext/standard/tests/streams/bug68948.phpt
Original file line number Diff line number Diff line change
@@ -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)

10 changes: 6 additions & 4 deletions ext/standard/tests/streams/stream_set_chunk_size.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -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)));
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion main/streams/streams.c
Original file line number Diff line number Diff line change
Expand Up @@ -741,7 +741,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;
}
}
Expand Down