diff options
author | gVisor bot <gvisor-bot@google.com> | 2020-05-06 17:35:47 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-05-06 17:35:47 +0000 |
commit | 9c0db04fe746df6260e9da0a0cd60a91f6c6887d (patch) | |
tree | e71152a5926e32f151e641f2fd4d71504bef7d8f /pkg/sentry/syscalls | |
parent | 568ef4b075849f04e329e964918dbbcaeb675602 (diff) | |
parent | 591ff0e424e3b30eb143bce06618cb8656784b90 (diff) |
Merge release-20200422.0-34-g591ff0e (automated)
Diffstat (limited to 'pkg/sentry/syscalls')
-rw-r--r-- | pkg/sentry/syscalls/linux/sys_sysinfo.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pkg/sentry/syscalls/linux/sys_sysinfo.go b/pkg/sentry/syscalls/linux/sys_sysinfo.go index a65b560c8..297de052a 100644 --- a/pkg/sentry/syscalls/linux/sys_sysinfo.go +++ b/pkg/sentry/syscalls/linux/sys_sysinfo.go @@ -29,13 +29,18 @@ func Sysinfo(t *kernel.Task, args arch.SyscallArguments) (uintptr, *kernel.Sysca mf.UpdateUsage() _, totalUsage := usage.MemoryAccounting.Copy() totalSize := usage.TotalMemory(mf.TotalSize(), totalUsage) + memFree := totalSize - totalUsage + if memFree > totalSize { + // Underflow. + memFree = 0 + } // Only a subset of the fields in sysinfo_t make sense to return. si := linux.Sysinfo{ Procs: uint16(len(t.PIDNamespace().Tasks())), Uptime: t.Kernel().MonotonicClock().Now().Seconds(), TotalRAM: totalSize, - FreeRAM: totalSize - totalUsage, + FreeRAM: memFree, Unit: 1, } _, err := t.CopyOut(addr, si) |