diff options
author | Kevin Krakauer <krakauer@google.com> | 2020-02-06 17:07:04 -0800 |
---|---|---|
committer | Kevin Krakauer <krakauer@google.com> | 2020-02-06 17:07:04 -0800 |
commit | d98287f5eb40a9c91668b7511824c05d542e0599 (patch) | |
tree | f8430747db6e1c02fe0eb45a7dad0899d06bd072 /pkg/sentry/socket/netstack/netstack.go | |
parent | bf0ea204e9415a181c63ee10078cca753df14f7e (diff) | |
parent | 16561e461e82f8d846ef1f3ada990270ef39ccc6 (diff) |
Merge branch 'master' into tcp-matchers-submit
Diffstat (limited to 'pkg/sentry/socket/netstack/netstack.go')
-rw-r--r-- | pkg/sentry/socket/netstack/netstack.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pkg/sentry/socket/netstack/netstack.go b/pkg/sentry/socket/netstack/netstack.go index 049d04bf2..ed2fbcceb 100644 --- a/pkg/sentry/socket/netstack/netstack.go +++ b/pkg/sentry/socket/netstack/netstack.go @@ -2229,11 +2229,16 @@ func (s *SocketOperations) coalescingRead(ctx context.Context, dst usermem.IOSeq var copied int // Copy as many views as possible into the user-provided buffer. - for dst.NumBytes() != 0 { + for { + // Always do at least one fetchReadView, even if the number of bytes to + // read is 0. err = s.fetchReadView() if err != nil { break } + if dst.NumBytes() == 0 { + break + } var n int var e error |