diff --git a/src/unix/cygwin.c b/src/unix/cygwin.c index a3d173650..8849656ff 100644 --- a/src/unix/cygwin.c +++ b/src/unix/cygwin.c @@ -34,7 +34,7 @@ uint64_t uv_hrtime() { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); - return (ts.tv_sec * NANOSEC + ts.tv_nsec); + return (((uint64_t) ts.tv_sec) * NANOSEC + ts.tv_nsec); } void uv_loadavg(double avg[3]) { diff --git a/src/unix/freebsd.c b/src/unix/freebsd.c index a519f86d4..5d0c6f4cc 100644 --- a/src/unix/freebsd.c +++ b/src/unix/freebsd.c @@ -38,7 +38,7 @@ uint64_t uv_hrtime(void) { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); - return (ts.tv_sec * NANOSEC + ts.tv_nsec); + return (((uint64_t) ts.tv_sec) * NANOSEC + ts.tv_nsec); } diff --git a/src/unix/linux.c b/src/unix/linux.c index a01d14b74..283465523 100644 --- a/src/unix/linux.c +++ b/src/unix/linux.c @@ -134,7 +134,7 @@ static char* basename_r(const char* path) { uint64_t uv_hrtime() { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); - return (ts.tv_sec * NANOSEC + ts.tv_nsec); + return (((uint64_t) ts.tv_sec) * NANOSEC + ts.tv_nsec); } void uv_loadavg(double avg[3]) { diff --git a/src/unix/netbsd.c b/src/unix/netbsd.c index cf83c3448..e4bea7ff6 100644 --- a/src/unix/netbsd.c +++ b/src/unix/netbsd.c @@ -38,7 +38,7 @@ uint64_t uv_hrtime(void) { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); - return (ts.tv_sec * NANOSEC + ts.tv_nsec); + return (((uint64_t) ts.tv_sec) * NANOSEC + ts.tv_nsec); } void uv_loadavg(double avg[3]) { diff --git a/src/unix/openbsd.c b/src/unix/openbsd.c index 55f8ceb0d..96e78fbda 100644 --- a/src/unix/openbsd.c +++ b/src/unix/openbsd.c @@ -36,7 +36,7 @@ uint64_t uv_hrtime(void) { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); - return (ts.tv_sec * NANOSEC + ts.tv_nsec); + return (((uint64_t) ts.tv_sec) * NANOSEC + ts.tv_nsec); } void uv_loadavg(double avg[3]) {