Ken Thomases : kernel32: Check that sysctl() call succeeded before using its output.
Alexandre Julliard
julliard at winehq.org
Mon Feb 17 13:45:14 CST 2014
Module: wine
Branch: master
Commit: 89a96db01ff5aee1c25cbb8e0590fdd81d6b5614
URL: http://source.winehq.org/git/wine.git/?a=commit;h=89a96db01ff5aee1c25cbb8e0590fdd81d6b5614
Author: Ken Thomases <ken at 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;
More information about the wine-cvs
mailing list