From: Rob Pike Date: Thu, 19 Nov 2009 19:51:23 +0000 (-0800) Subject: os.ReadAt doesn't return EOF at EOF. X-Git-Tag: weekly.2009-12-07~195 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4e201c7f20913405dfcee7eb4ff70e5673d8da8e;p=gostls13.git os.ReadAt doesn't return EOF at EOF. thanks to lionkov for the fix. Fixes #262. R=rsc CC=golang-dev https://golang.org/cl/156097 --- diff --git a/src/pkg/os/file.go b/src/pkg/os/file.go index edc228c53b..bc7f02ef98 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)};