diff options
author | Rahat Mahmood <rahat@google.com> | 2018-12-12 17:47:01 -0800 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2018-12-12 17:47:55 -0800 |
commit | ccce1d4281ce82fe551d7c8569fe3a545c62e296 (patch) | |
tree | cbcfbd64ba151097c5734102f6d1e1dfecdcd160 /pkg/sentry/fs/ashmem/area.go | |
parent | f93c288dd70846f335239e2d0cb351135a756f51 (diff) |
Filesystems shouldn't be saving references to Platform.
Platform objects are not savable, storing references to them in
filesystem datastructures would cause save to fail if someone actually
passed in a Platform.
Current implementations work because everywhere a Platform is
expected, we currently pass in a Kernel object which embeds Platform
and thus satisfies the interface.
Eliminate this indirection and save pointers to Kernel directly.
PiperOrigin-RevId: 225288336
Change-Id: Ica399ff43f425e15bc150a0d7102196c3d54a2ab
Diffstat (limited to 'pkg/sentry/fs/ashmem/area.go')
-rw-r--r-- | pkg/sentry/fs/ashmem/area.go | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/pkg/sentry/fs/ashmem/area.go b/pkg/sentry/fs/ashmem/area.go index 5372875ac..d7dd2c084 100644 --- a/pkg/sentry/fs/ashmem/area.go +++ b/pkg/sentry/fs/ashmem/area.go @@ -23,8 +23,8 @@ import ( "gvisor.googlesource.com/gvisor/pkg/sentry/fs" "gvisor.googlesource.com/gvisor/pkg/sentry/fs/fsutil" "gvisor.googlesource.com/gvisor/pkg/sentry/fs/tmpfs" + "gvisor.googlesource.com/gvisor/pkg/sentry/kernel" "gvisor.googlesource.com/gvisor/pkg/sentry/memmap" - "gvisor.googlesource.com/gvisor/pkg/sentry/platform" "gvisor.googlesource.com/gvisor/pkg/sentry/usage" "gvisor.googlesource.com/gvisor/pkg/sentry/usermem" "gvisor.googlesource.com/gvisor/pkg/syserror" @@ -117,11 +117,11 @@ func (a *Area) ConfigureMMap(ctx context.Context, file *fs.File, opts *memmap.MM opts.MaxPerms = opts.MaxPerms.Intersect(a.perms) if a.tmpfsFile == nil { - p := platform.FromContext(ctx) - if p == nil { + k := kernel.KernelFromContext(ctx) + if k == nil { return syserror.ENOMEM } - tmpfsInodeOps := tmpfs.NewInMemoryFile(ctx, usage.Tmpfs, fs.UnstableAttr{}, p) + tmpfsInodeOps := tmpfs.NewInMemoryFile(ctx, usage.Tmpfs, fs.UnstableAttr{}, k) // This is not backed by a real filesystem, so we pass in nil. tmpfsInode := fs.NewInode(tmpfsInodeOps, fs.NewNonCachingMountSource(nil, fs.MountSourceFlags{}), fs.StableAttr{}) dirent := fs.NewDirent(tmpfsInode, namePrefix+"/"+a.name) |