summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pkg/abi/linux/ioctl.go1
-rw-r--r--pkg/sentry/fs/host/file.go2
-rw-r--r--runsc/boot/filter/config.go5
3 files changed, 7 insertions, 1 deletions
diff --git a/pkg/abi/linux/ioctl.go b/pkg/abi/linux/ioctl.go
index 4d7a2dfd7..1c9dc7b03 100644
--- a/pkg/abi/linux/ioctl.go
+++ b/pkg/abi/linux/ioctl.go
@@ -21,6 +21,7 @@ const (
TCGETS = 0x00005401
TCSETS = 0x00005402
TCSETSW = 0x00005403
+ TCSETSF = 0x00005404
TIOCGPGRP = 0x0000540f
TIOCSPGRP = 0x00005410
TIOCOUTQ = 0x00005411
diff --git a/pkg/sentry/fs/host/file.go b/pkg/sentry/fs/host/file.go
index 8d2463c78..6f469b5cc 100644
--- a/pkg/sentry/fs/host/file.go
+++ b/pkg/sentry/fs/host/file.go
@@ -305,7 +305,7 @@ func (f *fileOperations) Ioctl(ctx context.Context, io usermem.IO, args arch.Sys
})
return 0, err
- case linux.TCSETS, linux.TCSETSW:
+ case linux.TCSETS, linux.TCSETSW, linux.TCSETSF:
var termios linux.Termios
if _, err := usermem.CopyObjectIn(ctx, io, args[2].Pointer(), &termios, usermem.IOOpts{
AddressSpaceActive: true,
diff --git a/runsc/boot/filter/config.go b/runsc/boot/filter/config.go
index 0bcc640d5..352c64253 100644
--- a/runsc/boot/filter/config.go
+++ b/runsc/boot/filter/config.go
@@ -149,6 +149,11 @@ var allowedSyscalls = seccomp.SyscallRules{
},
{
seccomp.AllowAny{}, /* fd */
+ seccomp.AllowValue(linux.TCSETSF),
+ seccomp.AllowAny{}, /* termios struct */
+ },
+ {
+ seccomp.AllowAny{}, /* fd */
seccomp.AllowValue(linux.TCSETSW),
seccomp.AllowAny{}, /* termios struct */
},