summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMichael Pratt <mpratt@google.com>2018-07-03 12:52:39 -0700
committerShentubot <shentubot@google.com>2018-07-03 12:53:39 -0700
commit660f1203ff1949a7b7869b801f4aa2133d30b91f (patch)
tree148a6abc4ac27a65fd1a6c7748a0c15c7d65ed94
parent52ddb8571c466577843d8eb1c5e270dd54f1ade6 (diff)
Fix runsc VDSO mapping
80bdf8a4068de3ac4a73b6b61a0cdcfe3e3571af accidentally moved vdso into an inner scope, never assigning the vdso variable passed to the Kernel and thus skipping VDSO mappings. Fix this and remove the ability for loadVDSO to skip VDSO mappings, since tests that do so are gone. PiperOrigin-RevId: 203169135 Change-Id: Ifd8cadcbaf82f959223c501edcc4d83d05327eba
-rw-r--r--pkg/sentry/loader/vdso.go6
-rw-r--r--runsc/boot/loader.go2
2 files changed, 1 insertions, 7 deletions
diff --git a/pkg/sentry/loader/vdso.go b/pkg/sentry/loader/vdso.go
index 037576e41..2e8693f8e 100644
--- a/pkg/sentry/loader/vdso.go
+++ b/pkg/sentry/loader/vdso.go
@@ -278,12 +278,6 @@ func PrepareVDSO(p platform.Platform) (*VDSO, error) {
//
// loadVDSO takes a reference on the VDSO and parameter page FrameRegions.
func loadVDSO(ctx context.Context, m *mm.MemoryManager, v *VDSO, bin loadedELF) (usermem.Addr, error) {
- if v == nil {
- // Should be used only by tests.
- ctx.Warningf("No VDSO provided, skipping VDSO mapping")
- return 0, nil
- }
-
if v.os != bin.os {
ctx.Warningf("Binary ELF OS %v and VDSO ELF OS %v differ", bin.os, v.os)
return 0, syserror.ENOEXEC
diff --git a/runsc/boot/loader.go b/runsc/boot/loader.go
index 6fcfba5cb..a3cc0e4a4 100644
--- a/runsc/boot/loader.go
+++ b/runsc/boot/loader.go
@@ -134,7 +134,7 @@ func New(spec *specs.Spec, conf *Config, controllerFD, restoreFD int, ioFDs []in
// Create VDSO.
//
// Pass k as the platform since it is savable, unlike the actual platform.
- vdso, err := loader.PrepareVDSO(k)
+ vdso, err = loader.PrepareVDSO(k)
if err != nil {
return nil, fmt.Errorf("error creating vdso: %v", err)
}