Explorar o código

guard against div-by-zero

Marshall Mohror %!s(int64=4) %!d(string=hai) anos
pai
achega
e71d457af9
Modificáronse 1 ficheiros con 5 adicións e 2 borrados
  1. 5 2
      src/common/x64/cpu_detect.cpp

+ 5 - 2
src/common/x64/cpu_detect.cpp

@@ -170,8 +170,11 @@ static CPUCaps Detect() {
         // The CPU model can be detected to use the values from turbostat
         // https://github.com/torvalds/linux/blob/master/tools/power/x86/turbostat/turbostat.c#L5569
         // but it's easier to just estimate the TSC tick rate for these cases.
-        caps.tsc_frequency = static_cast<u64>(caps.crystal_frequency) *
-                             caps.tsc_crystal_ratio_numerator / caps.tsc_crystal_ratio_denominator;
+        if (caps.tsc_crystal_ratio_denominator) {
+            caps.tsc_frequency = static_cast<u64>(caps.crystal_frequency) *
+                                 caps.tsc_crystal_ratio_numerator /
+                                 caps.tsc_crystal_ratio_denominator;
+        }
     }
 
     if (max_std_fn >= 0x16) {