os/os_memory_aligned.h: Handle integer overflow.
[mesa.git] / src / gallium / auxiliary / os / os_misc.c
index 4c5a22d0ef8e337b99168735d347c8bbed9efd45..c46078bb07dfc4ad23632ec6d4160961b6f8c7da 100644 (file)
@@ -118,7 +118,7 @@ os_get_total_physical_memory(uint64_t *size)
    *size = phys_pages * page_size;
    return (phys_pages > 0 && page_size > 0);
 #elif defined(PIPE_OS_APPLE) || defined(PIPE_OS_BSD)
-   size_t len = sizeof(size);
+   size_t len = sizeof(*size);
    int mib[2];
 
    mib[0] = CTL_HW;
@@ -128,11 +128,13 @@ os_get_total_physical_memory(uint64_t *size)
    mib[1] = HW_PHYSMEM64;
 #elif defined(PIPE_OS_FREEBSD)
    mib[1] = HW_REALMEM;
+#elif defined(PIPE_OS_DRAGONFLY)
+   mib[1] = HW_PHYSMEM;
 #else
 #error Unsupported *BSD
 #endif
 
-   return (sysctl(mib, 2, &size, &len, NULL, 0) == 0);
+   return (sysctl(mib, 2, size, &len, NULL, 0) == 0);
 #elif defined(PIPE_OS_HAIKU)
    system_info info;
    status_t ret;