okra pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=89feae2b8673c9b6e63c597f6f9790a968dd83dc
commit 89feae2b8673c9b6e63c597f6f9790a968dd83dc Author: Al 'netstar' Poole <nets...@gmail.com> Date: Thu Apr 27 15:18:19 2017 -0500 Sysinfo: Fix interger overflow on BSD. This commits D4810 --- src/modules/sysinfo/memusage/memusage_sysctl.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/modules/sysinfo/memusage/memusage_sysctl.c b/src/modules/sysinfo/memusage/memusage_sysctl.c index db2c7e5..af85e75 100644 --- a/src/modules/sysinfo/memusage/memusage_sysctl.c +++ b/src/modules/sysinfo/memusage/memusage_sysctl.c @@ -28,12 +28,10 @@ _sysctlfromname(const char *name, void *mib, int depth, size_t *len) } #endif -#if defined(__OpenBSD__) void _memsize_bytes_to_kb(unsigned long *bytes) { *bytes = (unsigned int) *bytes >> 10; } -#endif void _memusage_sysctl_getusage(unsigned long *mem_total, unsigned long *mem_used, @@ -70,19 +68,23 @@ void _memusage_sysctl_getusage(unsigned long *mem_total, inactive_pages = _sysctlfromname("vm.stats.vm.v_inactive_count", mib, 4, &len); if (inactive_pages < 0) return; - *mem_used = (total_pages - free_pages - inactive_pages) * page_size >> 10; - + *mem_used = (total_pages - free_pages - inactive_pages) * page_size; + _memsize_bytes_to_kb(mem_used); + result = _sysctlfromname("vfs.bufspace", mib, 2, &len); if (result < 0) return; - *mem_buffers = (result / 1024); + *mem_buffers = (result); + _memsize_bytes_to_kb(mem_buffers); result = _sysctlfromname("vm.stats.vm.v_active_count", mib, 4, &len); if (result < 0) return; - *mem_cached = ((result * page_size) / 1024); + *mem_cached = (result * page_size); + _memsize_bytes_to_kb(mem_cached); result = _sysctlfromname("vm.stats.vm.v_cache_count", mib, 4, &len); if (result < 0) return; - *mem_shared = (result * page_size) / 1024; + *mem_shared = (result * page_size); + _memsize_bytes_to_kb(mem_shared); result = _sysctlfromname("vm.swap_total", mib, 2, &len); if (result < 0) return; --