Преглед изворни кода

HPCC-22989 Protect against div by 0 in skew calc.

Signed-off-by: Jake Smith <jake.smith@lexisnexisrisk.com>
Jake Smith пре 5 година
родитељ
комит
bc3f662fa0
1 измењених фајлова са 7 додато и 3 уклоњено
  1. 7 3
      dali/base/dadfs.cpp

+ 7 - 3
dali/base/dadfs.cpp

@@ -3398,9 +3398,13 @@ protected:
             totalPartSz += size;
         }
         offset_t avgPartSz = totalPartSz / np;
-
-        maxSkew = (unsigned)(10000.0 * (((double)maxPartSz-avgPartSz)/avgPartSz));
-        minSkew = (unsigned)(10000.0 * ((avgPartSz-(double)minPartSz)/avgPartSz));
+        if (0 == avgPartSz)
+            minSkew = maxSkew = 0;
+        else
+        {
+            maxSkew = (unsigned)(10000.0 * (((double)maxPartSz-avgPartSz)/avgPartSz));
+            minSkew = (unsigned)(10000.0 * ((avgPartSz-(double)minPartSz)/avgPartSz));
+        }
 
         return true;
     }