summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAyush Ranjan <ayushranjan@google.com>2021-03-15 16:38:46 -0700
committergVisor bot <gvisor-bot@google.com>2021-03-15 16:41:02 -0700
commitec45d969236bb98a83e7da0466bd67e540c5e8b5 (patch)
treec67c9f0d448b10f626613b743204b1dea14678ce
parent48915d17df956a289e12f7bc81be8619ac13ea0a (diff)
[op] Make gofer client handle return partial write length when err is nil.
If there was a partial write (when not using the host FD) which did not generate an error, we were incorrectly returning the number of bytes attempted to write instead of the number of bytes actually written. PiperOrigin-RevId: 363058989
-rw-r--r--pkg/sentry/fsimpl/gofer/handle.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/pkg/sentry/fsimpl/gofer/handle.go b/pkg/sentry/fsimpl/gofer/handle.go
index 0bc201d1c..5c57f6fea 100644
--- a/pkg/sentry/fsimpl/gofer/handle.go
+++ b/pkg/sentry/fsimpl/gofer/handle.go
@@ -124,8 +124,9 @@ func (h *handle) writeFromBlocksAt(ctx context.Context, srcs safemem.BlockSeq, o
return 0, cperr
}
n, err := h.file.writeAt(ctx, buf[:cp], offset)
+ // err takes precedence over cperr.
if err != nil {
return uint64(n), err
}
- return cp, cperr
+ return uint64(n), cperr
}