Module: wine Branch: master Commit: 89a96db01ff5aee1c25cbb8e0590fdd81d6b5614 URL: http://source.winehq.org/git/wine.git/?a=commit;h=89a96db01ff5aee1c25cbb8e05...
Author: Ken Thomases ken@codeweavers.com Date: Sun Feb 16 20:43:28 2014 -0600
kernel32: Check that sysctl() call succeeded before using its output.
---
dlls/kernel32/heap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/kernel32/heap.c b/dlls/kernel32/heap.c index 51bd235..578cb43 100644 --- a/dlls/kernel32/heap.c +++ b/dlls/kernel32/heap.c @@ -1222,12 +1222,12 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex ) mib[0] = CTL_HW; mib[1] = HW_PHYSMEM; size_sys = sizeof(val); - sysctl(mib, 2, &val, &size_sys, NULL, 0); - if (val) lpmemex->ullTotalPhys = val; + if (!sysctl(mib, 2, &val, &size_sys, NULL, 0) && size_sys == sizeof(val) && val) + lpmemex->ullTotalPhys = val; mib[1] = HW_USERMEM; size_sys = sizeof(val); - sysctl(mib, 2, &val, &size_sys, NULL, 0); - if (!val) val = lpmemex->ullTotalPhys; + if (sysctl(mib, 2, &val, &size_sys, NULL, 0) || size_sys != sizeof(val) || !val) + val = lpmemex->ullTotalPhys; lpmemex->ullAvailPhys = val; lpmemex->ullTotalPageFile = val; lpmemex->ullAvailPageFile = val;