diff --git a/include/sigar_private.h b/include/sigar_private.h index 78f75758..81a03a3f 100644 --- a/include/sigar_private.h +++ b/include/sigar_private.h @@ -114,7 +114,7 @@ ((sigar_uint64_t)(s) * (sigar_uint64_t)SIGAR_NSEC) /* cpu ticks to milliseconds */ -#define SIGAR_TICK2MSEC(s) ((s) * (SIGAR_MSEC / sigar->ticks)) +#define SIGAR_TICK2MSEC(s) ((sigar_uint64_t)(s) * ((sigar_uint64_t)SIGAR_MSEC / sigar->ticks)) #define SIGAR_TICK2NSEC(s) ((sigar_uint64_t)(s) * ((sigar_uint64_t)SIGAR_NSEC / sigar->ticks)) #define IFTYPE_LO 2 diff --git a/src/os/darwin/darwin_sigar.c b/src/os/darwin/darwin_sigar.c index 6bd32e60..c10b2781 100644 --- a/src/os/darwin/darwin_sigar.c +++ b/src/os/darwin/darwin_sigar.c @@ -499,7 +499,7 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu) #else int status; - long cp_time[CPUSTATES]; + unsigned long cp_time[CPUSTATES]; size_t size = sizeof(cp_time); /* try sysctl first, does not require /dev/kmem perms */