From e3d7cf7c96964f9d55116f235dc3e0cbf5fef971 Mon Sep 17 00:00:00 2001 From: Michael Klein Date: Sat, 8 Aug 2015 21:07:58 +0100 Subject: Cocoa: fix integer multiplication overflow in qt_gettime() Task-number: QTBUG-24031 Change-Id: Iae00b10b6a7423508669ef173a80a03b3dd388c6 Reviewed-by: Thiago Macieira --- src/corelib/tools/qelapsedtimer_mac.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/corelib/tools/qelapsedtimer_mac.cpp') diff --git a/src/corelib/tools/qelapsedtimer_mac.cpp b/src/corelib/tools/qelapsedtimer_mac.cpp index a355bf03e8..e946ac096f 100644 --- a/src/corelib/tools/qelapsedtimer_mac.cpp +++ b/src/corelib/tools/qelapsedtimer_mac.cpp @@ -59,8 +59,13 @@ static qint64 absoluteToNSecs(qint64 cpuTime) { if (info.denom == 0) mach_timebase_info(&info); +#ifdef __LP64__ + __uint128_t nsecs = static_cast<__uint128_t>(cpuTime) * info.numer / info.denom; + return static_cast(nsecs); +#else qint64 nsecs = cpuTime * info.numer / info.denom; return nsecs; +#endif } static qint64 absoluteToMSecs(qint64 cpuTime) -- cgit v1.2.3