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;

-- 


Reply via email to