diff options
author | Nicolas Lacasse <nlacasse@google.com> | 2019-06-28 15:27:25 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-06-28 15:28:41 -0700 |
commit | 295078fa7ae7893f3deb0e6042e2aecfaba0dd1c (patch) | |
tree | a03544fe8182db496dc7b96c5d68d64b5bb66b41 | |
parent | e21d49c2d82b7d109bc7c8955edea1787de59ac0 (diff) |
Automated rollback of changelist 255263686
PiperOrigin-RevId: 255679453
-rw-r--r-- | pkg/sentry/fs/inode_overlay.go | 6 | ||||
-rw-r--r-- | runsc/boot/fs.go | 13 | ||||
-rw-r--r-- | test/syscalls/BUILD | 2 |
3 files changed, 7 insertions, 14 deletions
diff --git a/pkg/sentry/fs/inode_overlay.go b/pkg/sentry/fs/inode_overlay.go index b247fa514..24b769cfc 100644 --- a/pkg/sentry/fs/inode_overlay.go +++ b/pkg/sentry/fs/inode_overlay.go @@ -567,6 +567,12 @@ func overlayCheck(ctx context.Context, o *overlayEntry, p PermMask) error { if o.upper != nil { err = o.upper.check(ctx, p) } else { + if p.Write { + // Since writes will be redirected to the upper filesystem, the lower + // filesystem need not be writable, but must be readable for copy-up. + p.Write = false + p.Read = true + } err = o.lower.check(ctx, p) } o.copyMu.RUnlock() diff --git a/runsc/boot/fs.go b/runsc/boot/fs.go index af52286a6..9da0c7067 100644 --- a/runsc/boot/fs.go +++ b/runsc/boot/fs.go @@ -85,19 +85,6 @@ func addOverlay(ctx context.Context, conf *Config, lower *fs.Inode, name string, if err != nil { return nil, fmt.Errorf("creating tmpfs overlay: %v", err) } - - // Replicate permissions and owner from lower to upper mount point. - attr, err := lower.UnstableAttr(ctx) - if err != nil { - return nil, fmt.Errorf("reading attributes from lower mount point: %v", err) - } - if !upper.InodeOperations.SetPermissions(ctx, upper, attr.Perms) { - return nil, fmt.Errorf("error setting permission to upper mount point") - } - if err := upper.InodeOperations.SetOwner(ctx, upper, attr.Owner); err != nil { - return nil, fmt.Errorf("setting owner to upper mount point: %v", err) - } - return fs.NewOverlayRoot(ctx, upper, lower, upperFlags) } diff --git a/test/syscalls/BUILD b/test/syscalls/BUILD index b5f89033b..4ac511740 100644 --- a/test/syscalls/BUILD +++ b/test/syscalls/BUILD @@ -240,7 +240,7 @@ syscall_test( syscall_test(test = "//test/syscalls/linux:munmap_test") syscall_test( - add_overlay = True, + add_overlay = False, # TODO(gvisor.dev/issue/316): enable when fixed. test = "//test/syscalls/linux:open_create_test", ) |