summaryrefslogtreecommitdiff
path: root/src/pkg/os/file.go
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2009-11-19 11:51:23 -0800
committerRob Pike <r@golang.org>2009-11-19 11:51:23 -0800
commitfd8c026731808e18aa2ae0868e3c3c9e5cf2a5c6 (patch)
tree47ec3b86ec7ff8fb8e14c9dd52975b3dc4cd671f /src/pkg/os/file.go
parent22c9229710e92eb24ad209cc9b868576a5ea0f5e (diff)
downloadgolang-fd8c026731808e18aa2ae0868e3c3c9e5cf2a5c6.tar.gz
os.ReadAt doesn't return EOF at EOF.
thanks to lionkov for the fix. Fixes issue 262. R=rsc CC=golang-dev http://codereview.appspot.com/156097
Diffstat (limited to 'src/pkg/os/file.go')
-rw-r--r--src/pkg/os/file.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/pkg/os/file.go b/src/pkg/os/file.go
index edc228c53..bc7f02ef9 100644
--- a/src/pkg/os/file.go
+++ b/src/pkg/os/file.go
@@ -138,6 +138,9 @@ func (file *File) ReadAt(b []byte, off int64) (n int, err Error) {
}
for len(b) > 0 {
m, e := syscall.Pread(file.fd, b, off);
+ if m == 0 && e == 0 {
+ return n, EOF
+ }
n += m;
if e != 0 {
err = &PathError{"read", file.name, Errno(e)};