diff options
author | Jamie Liu <jamieliu@google.com> | 2019-08-29 10:50:48 -0700 |
---|---|---|
committer | Nicolas Lacasse <nlacasse@google.com> | 2019-08-29 14:01:03 -0700 |
commit | 36a8949b2a52aabbe3f0548f1207c133da113c56 (patch) | |
tree | 37da2f9a78fba1cd8243e9cf311de96060e7a11a /pkg/sentry/fs/gofer/fs.go | |
parent | 6e8fc27dc5de8ed0a04fe943a6354c0133bfc63f (diff) |
Add limit_host_fd_translation Gofer mount option.
PiperOrigin-RevId: 266177409
Diffstat (limited to 'pkg/sentry/fs/gofer/fs.go')
-rw-r--r-- | pkg/sentry/fs/gofer/fs.go | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/pkg/sentry/fs/gofer/fs.go b/pkg/sentry/fs/gofer/fs.go index 69999dc28..8f8ab5d29 100644 --- a/pkg/sentry/fs/gofer/fs.go +++ b/pkg/sentry/fs/gofer/fs.go @@ -54,6 +54,10 @@ const ( // sandbox using files backed by the gofer. If set to false, unix sockets // cannot be bound to gofer files without an overlay on top. privateUnixSocketKey = "privateunixsocket" + + // If present, sets CachingInodeOperationsOptions.LimitHostFDTranslation to + // true. + limitHostFDTranslationKey = "limit_host_fd_translation" ) // defaultAname is the default attach name. @@ -134,12 +138,13 @@ func (f *filesystem) Mount(ctx context.Context, device string, flags fs.MountSou // opts are parsed 9p mount options. type opts struct { - fd int - aname string - policy cachePolicy - msize uint32 - version string - privateunixsocket bool + fd int + aname string + policy cachePolicy + msize uint32 + version string + privateunixsocket bool + limitHostFDTranslation bool } // options parses mount(2) data into structured options. @@ -237,6 +242,11 @@ func options(data string) (opts, error) { delete(options, privateUnixSocketKey) } + if _, ok := options[limitHostFDTranslationKey]; ok { + o.limitHostFDTranslation = true + delete(options, limitHostFDTranslationKey) + } + // Fail to attach if the caller wanted us to do something that we // don't support. if len(options) > 0 { |