--- /dev/null
+--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"
if (maxlen > 0) {
if (rettype == IS_UNICODE) {
ptr.u = *buf = pemalloc_rel_orig(UBYTES(maxlen + 1), persistent);
- while ((len < maxlen) & !php_stream_eof(src)) {
+ while ((len < maxlen) && !php_stream_eof(src)) {
int ulen;
ret = php_stream_read_unicode_ex(src, ptr.u, maxlen - len, maxchars);
return len;
} else {
ptr.s = *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.s, maxlen - len);
len += ret;
ptr.s += ret;