summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pkg/sentry/fs/inode_overlay.go6
-rw-r--r--runsc/boot/fs.go13
-rw-r--r--test/syscalls/BUILD2
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",
)