]> Cypherpunks repositories - gostls13.git/commitdiff
net: return poll.SendFile error from sendFile
authorIan Lance Taylor <iant@golang.org>
Fri, 1 Mar 2019 15:12:24 +0000 (07:12 -0800)
committerIan Lance Taylor <iant@golang.org>
Fri, 1 Mar 2019 22:15:57 +0000 (22:15 +0000)
We were accidentally ignoring any error returned by poll.SendFile.
Noticed by reading the code. It could only change behavior if the
sendfile system call both wrote some bytes and returned an error.

Change-Id: I0693d6ec0a30f5a86b78d38793899ca29fb9e156
Reviewed-on: https://go-review.googlesource.com/c/164760
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/net/sendfile_linux.go
src/net/sendfile_unix_alt.go

index 297e625d24b1d86623316abb51c32e5fc313f6d3..e5150aa5e8a3644488ed3c922c84e9c988fbb857 100644 (file)
@@ -42,8 +42,8 @@ func sendFile(c *netFD, r io.Reader) (written int64, err error, handled bool) {
                written, werr = poll.SendFile(&c.pfd, int(fd), remain)
                return true
        })
-       if werr == nil {
-               werr = err
+       if err == nil {
+               err = werr
        }
 
        if lr != nil {
index 43df3bfd15eff08ba1a39b2f62febc7917191462..8cededce58d7fea97274bac397277f52c4f93b20 100644 (file)
@@ -68,8 +68,8 @@ func sendFile(c *netFD, r io.Reader) (written int64, err error, handled bool) {
                written, werr = poll.SendFile(&c.pfd, int(fd), pos, remain)
                return true
        })
-       if werr == nil {
-               werr = err
+       if err == nil {
+               err = werr
        }
 
        if lr != nil {