From: Dmitry Stogov Date: Wed, 25 Jul 2007 16:34:06 +0000 (+0000) Subject: Fixed EOF handling in case of reading from file opened in write only mode. X-Git-Tag: php-5.2.4RC1~47 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2d3d745bd9aece8adb2d5c8cc013a60a6136fb8d;p=php Fixed EOF handling in case of reading from file opened in write only mode. --- diff --git a/NEWS b/NEWS index be6e96bff8..dd40f9293d 100644 --- a/NEWS +++ b/NEWS @@ -41,6 +41,8 @@ PHP NEWS - Implemented FR #41884 (ReflectionClass::getDefaultProperties() does not handle static attributes). (Tony) +- Fixed EOF handling in case of reading from file opened in write only mode. + (Dmitry) - Fixed "Floating point exception" inside wordwrap(). (Mattias Bengtsson, Ilia) - Fixed crash in OpenSSL extension because of non-string passphrase. (Dmitry) diff --git a/ext/standard/tests/file/fgets_variation1.phpt b/ext/standard/tests/file/fgets_variation1.phpt index dbd51c6bbe..48ea231194 100644 --- a/ext/standard/tests/file/fgets_variation1.phpt +++ b/ext/standard/tests/file/fgets_variation1.phpt @@ -84,7 +84,7 @@ int(0) bool(false) bool(false) int(0) -bool(true) +bool(false) -- File opened in mode : at -- bool(true) int(0) diff --git a/ext/standard/tests/file/fread_variation4-win32.phpt b/ext/standard/tests/file/fread_variation4-win32.phpt index adfed312a5..77d733a50e 100644 --- a/ext/standard/tests/file/fread_variation4-win32.phpt +++ b/ext/standard/tests/file/fread_variation4-win32.phpt @@ -117,117 +117,117 @@ int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode ab -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode at -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode w -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode x -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- Testing fread() with file having content of type text -- -- File opened in mode a -- @@ -236,117 +236,117 @@ int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode ab -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode at -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode w -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode x -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- Testing fread() with file having content of type text_with_new_line -- -- File opened in mode a -- @@ -355,115 +355,115 @@ int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode ab -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode at -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode w -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1137) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1137) -bool(true) +bool(false) -- File opened in mode x -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1137) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1137) -bool(true) +bool(false) Done \ No newline at end of file diff --git a/ext/standard/tests/file/fread_variation4.phpt b/ext/standard/tests/file/fread_variation4.phpt index 1c21b9b5d1..fdff8de704 100644 --- a/ext/standard/tests/file/fread_variation4.phpt +++ b/ext/standard/tests/file/fread_variation4.phpt @@ -117,117 +117,117 @@ int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode ab -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode at -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode w -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode x -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- Testing fread() with file having content of type text -- -- File opened in mode a -- @@ -236,117 +236,117 @@ int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode ab -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode at -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode w -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode x -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- Testing fread() with file having content of type text_with_new_line -- -- File opened in mode a -- @@ -355,115 +355,115 @@ int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode ab -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode at -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode w -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode wt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode x -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xb -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) -- File opened in mode xt -- -- Reading beyond filesize, expeceted : 1024 bytes -- int(0) bool(false) Reading 1030 bytes from file, expecting 0 bytes ... OK int(0) -bool(true) +bool(false) -- Reading beyond filesize when file pointer pointing to EOF, expeceted : 0 bytes -- int(1024) bool(false) Reading 10 bytes from file, expecting 0 bytes ... OK int(1024) -bool(true) +bool(false) Done \ No newline at end of file diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index 3073314992..74c1841950 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -338,7 +338,7 @@ static size_t php_stdiop_read(php_stream *stream, char *buf, size_t count TSRMLS ret = read(data->fd, buf, count); } - stream->eof = (ret == 0 || (ret == (size_t)-1 && errno != EWOULDBLOCK && errno != EINTR)); + stream->eof = (ret == 0 || (ret == (size_t)-1 && errno != EWOULDBLOCK && errno != EINTR && errno != EBADF)); } else { #if HAVE_FLUSHIO