Skip to content

Commit

Permalink
MFH: Fixed stream_get_contents() when using $maxlength and socket is not
Browse files Browse the repository at this point in the history
closed. indeyets@php.net on #46049.
  • Loading branch information
arnaud-lb committed Nov 11, 2008
1 parent 3c01491 commit c7411c2
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
3 changes: 3 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ PHP NEWS
- Fixed bug #44818 (php://memory writeable when opened read only). (Arnaud)
- Fixed bug #30312 (sybase_unbuffered_query calls). (Timm)

- Fixed stream_get_contents() when using $maxlength and socket is not
closed. indeyets@php.net on #46049. (Arnaud)

06 Nov 2008, PHP 5.2.7RC3
- Added PHP_MAJOR_VERSION, PHP_MINOR_VERSION, PHP_RELEASE_VERSION,
PHP_EXTRA_VERSION, PHP_VERSION_ID, PHP_ZTS and PHP_DEBUG constants. (Pierre)
Expand Down
18 changes: 18 additions & 0 deletions ext/standard/tests/streams/stream_get_contents_002.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
--TEST--
stream_get_contents() - Testing on socket with $maxlength
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') die("skip: non windows test");
?>
--FILE--
<?php
$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, 0);

stream_set_timeout($sockets[1], 6000);

fwrite($sockets[0], b"foo");
var_dump(stream_get_contents($sockets[1], 3));

?>
--EXPECT--
string(3) "foo"
2 changes: 1 addition & 1 deletion main/streams/streams.c
Original file line number Diff line number Diff line change
Expand Up @@ -1234,7 +1234,7 @@ PHPAPI size_t _php_stream_copy_to_mem(php_stream *src, char **buf, size_t maxlen

if (maxlen > 0) {
ptr = *buf = pemalloc_rel_orig(maxlen + 1, persistent);
while ((len < maxlen) & !php_stream_eof(src)) {
while ((len < maxlen) && !php_stream_eof(src)) {
ret = php_stream_read(src, ptr, maxlen - len);
len += ret;
ptr += ret;
Expand Down

0 comments on commit c7411c2

Please sign in to comment.