diff options
author | Kevin Krakauer <krakauer@google.com> | 2020-01-13 12:22:15 -0800 |
---|---|---|
committer | Kevin Krakauer <krakauer@google.com> | 2020-01-13 12:22:15 -0800 |
commit | 31e49f4b19309259baeeb63e7b6ef41f8edd6d35 (patch) | |
tree | ad6cae1ad4f173946eb68156653bea84d7254f81 /pkg/sentry/socket/unix/io.go | |
parent | d147e6d1b29d25607bcdcdb0beddb5122fea085e (diff) | |
parent | b30cfb1df72e201c6caf576bbef8fcc968df2d41 (diff) |
Merge branch 'master' into iptables-write-input-drop
Diffstat (limited to 'pkg/sentry/socket/unix/io.go')
-rw-r--r-- | pkg/sentry/socket/unix/io.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/pkg/sentry/socket/unix/io.go b/pkg/sentry/socket/unix/io.go index 2ec1a662d..2447f24ef 100644 --- a/pkg/sentry/socket/unix/io.go +++ b/pkg/sentry/socket/unix/io.go @@ -83,6 +83,19 @@ type EndpointReader struct { ControlTrunc bool } +// Truncate calls RecvMsg on the endpoint without writing to a destination. +func (r *EndpointReader) Truncate() error { + // Ignore bytes read since it will always be zero. + _, ms, c, ct, err := r.Endpoint.RecvMsg(r.Ctx, [][]byte{}, r.Creds, r.NumRights, r.Peek, r.From) + r.Control = c + r.ControlTrunc = ct + r.MsgSize = ms + if err != nil { + return err.ToError() + } + return nil +} + // ReadToBlocks implements safemem.Reader.ReadToBlocks. func (r *EndpointReader) ReadToBlocks(dsts safemem.BlockSeq) (uint64, error) { return safemem.FromVecReaderFunc{func(bufs [][]byte) (int64, error) { |