aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/sandbox
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-03-14 02:12:35 +0900
committerOphestra <cat@gensokyo.uk>2025-03-14 02:12:35 +0900
commit2eff47009102d53844906aa90fb2b8eddae78c1b (patch)
treefce33594aa17c9847295cd86fe469a7d5c13d437 /internal/sandbox
parenta092b042abca15ce3ba9def9b502d8a7cb889c1b (diff)
sandbox/mount: pass custom tmpfs name
The tmpfs driver allows arbitrary fsname. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/sandbox')
-rw-r--r--internal/sandbox/mount.go4
-rw-r--r--internal/sandbox/sequential.go2
2 files changed, 3 insertions, 3 deletions
diff --git a/internal/sandbox/mount.go b/internal/sandbox/mount.go
index ea781d60..eaede7b4 100644
--- a/internal/sandbox/mount.go
+++ b/internal/sandbox/mount.go
@@ -82,7 +82,7 @@ func bindMount(src, dest string, flags int) error {
fmt.Sprintf("cannot bind %q on %q:", src, dest))
}
-func mountTmpfs(name string, size int, perm os.FileMode) error {
+func mountTmpfs(fsname, name string, size int, perm os.FileMode) error {
target := toSysroot(name)
if err := os.MkdirAll(target, perm); err != nil {
return err
@@ -91,7 +91,7 @@ func mountTmpfs(name string, size int, perm os.FileMode) error {
if size > 0 {
opt += fmt.Sprintf(",size=%d", size)
}
- return fmsg.WrapErrorSuffix(syscall.Mount("tmpfs", target, "tmpfs",
+ return fmsg.WrapErrorSuffix(syscall.Mount(fsname, target, "tmpfs",
syscall.MS_NOSUID|syscall.MS_NODEV, opt),
fmt.Sprintf("cannot mount tmpfs on %q:", name))
}
diff --git a/internal/sandbox/sequential.go b/internal/sandbox/sequential.go
index 75d62685..719af5f1 100644
--- a/internal/sandbox/sequential.go
+++ b/internal/sandbox/sequential.go
@@ -87,7 +87,7 @@ func (t *MountTmpfs) apply(*InitParams) error {
return fmsg.WrapError(syscall.EBADE,
fmt.Sprintf("size %d out of bounds", t.Size))
}
- return mountTmpfs(t.Path, t.Size, t.Perm)
+ return mountTmpfs("tmpfs", t.Path, t.Size, t.Perm)
}
func (t *MountTmpfs) Is(op Op) bool { vt, ok := op.(*MountTmpfs); return ok && *t == *vt }