浏览代码

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;
     }