diff options
author | Ayush Ranjan <ayushranjan@google.com> | 2021-03-15 16:38:46 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-03-15 16:41:02 -0700 |
commit | ec45d969236bb98a83e7da0466bd67e540c5e8b5 (patch) | |
tree | c67c9f0d448b10f626613b743204b1dea14678ce | |
parent | 48915d17df956a289e12f7bc81be8619ac13ea0a (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.go | 3 |
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 } |