Don't leak VDSO mappings.

PiperOrigin-RevId: 336822021
This commit is contained in:
Dean Deng
2020-10-13 00:14:15 -07:00
committed by gVisor bot
parent 10ca12b3d0
commit fc7df53222
2 changed files with 9 additions and 1 deletions
+3 -1
View File
@@ -1744,12 +1744,14 @@ func (k *Kernel) SocketMount() *vfs.Mount {
// Precondition: This should only be called after the kernel is fully
// initialized, e.g. after k.Start() has been called.
func (k *Kernel) Release() {
ctx := k.SupervisorContext()
if VFS2Enabled {
ctx := k.SupervisorContext()
k.hostMount.DecRef(ctx)
k.pipeMount.DecRef(ctx)
k.shmMount.DecRef(ctx)
k.socketMount.DecRef(ctx)
k.vfs.Release(ctx)
}
k.timekeeper.Destroy()
k.vdso.Release(ctx)
}
+6
View File
@@ -380,3 +380,9 @@ func loadVDSO(ctx context.Context, m *mm.MemoryManager, v *VDSO, bin loadedELF)
return vdsoAddr, nil
}
// Release drops references on mappings held by v.
func (v *VDSO) Release(ctx context.Context) {
v.ParamPage.DecRef(ctx)
v.vdso.DecRef(ctx)
}