diff options
author | gVisor bot <gvisor-bot@google.com> | 2020-06-12 19:00:48 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-06-12 19:00:48 +0000 |
commit | 5cf9255f3295fc1c60a582f3e5063f3be4678dba (patch) | |
tree | 8f43c6cbd2d3bf4a332b88f3103dca46870ea4de /pkg/sentry/kernel | |
parent | f11e44a4d2a616f825986ec40288bbd241b0ddba (diff) | |
parent | 6ec9d60403fdf7a33072eaa023e62bfd56ed9f5c (diff) |
Merge release-20200522.0-149-g6ec9d6040 (automated)
Diffstat (limited to 'pkg/sentry/kernel')
-rw-r--r-- | pkg/sentry/kernel/fd_table.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/pkg/sentry/kernel/fd_table.go b/pkg/sentry/kernel/fd_table.go index b35afafe3..48911240f 100644 --- a/pkg/sentry/kernel/fd_table.go +++ b/pkg/sentry/kernel/fd_table.go @@ -458,6 +458,29 @@ func (f *FDTable) SetFlags(fd int32, flags FDFlags) error { return nil } +// SetFlagsVFS2 sets the flags for the given file descriptor. +// +// True is returned iff flags were changed. +func (f *FDTable) SetFlagsVFS2(fd int32, flags FDFlags) error { + if fd < 0 { + // Don't accept negative FDs. + return syscall.EBADF + } + + f.mu.Lock() + defer f.mu.Unlock() + + file, _, _ := f.getVFS2(fd) + if file == nil { + // No file found. + return syscall.EBADF + } + + // Update the flags. + f.setVFS2(fd, file, flags) + return nil +} + // Get returns a reference to the file and the flags for the FD or nil if no // file is defined for the given fd. // |