summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/fs/host
diff options
context:
space:
mode:
authorNicolas Lacasse <nlacasse@google.com>2018-09-27 18:15:07 -0700
committerShentubot <shentubot@google.com>2018-09-27 18:17:38 -0700
commitb709d239870143102cf4e44b65cc26cea78a6ccb (patch)
tree085090abbc7401b5d2354d0b89aa99d2c63ef6d6 /pkg/sentry/fs/host
parent491faac03b2815ca1bc9b5425c1b3f6291468e20 (diff)
Forward ioctl(TCSETSF) calls on host ttys to the host kernel.
We already forward TCSETS and TCSETSW. TCSETSF is roughly equivalent but discards pending input. The filters were relaxed to allow host ioctls with TCSETSF argument. This fixes programs like "passwd" that prevent user input from being displayed on the terminal. Before: root@b8a0240fc836:/# passwd Enter new UNIX password: 123 Retype new UNIX password: 123 passwd: password updated successfully After: root@ae6f5dabe402:/# passwd Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully PiperOrigin-RevId: 214869788 Change-Id: I31b4d1373c1388f7b51d0f2f45ce40aa8e8b0b58
Diffstat (limited to 'pkg/sentry/fs/host')
-rw-r--r--pkg/sentry/fs/host/file.go2
1 files changed, 1 insertions, 1 deletions
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,