浏览代码

HPCC-19852 Check pointer expandedClusterGroup before using it

An unbound thor cluster causes esp to segfault when user clicks on
an ECLWatch link for more details. The segfault is due to invalid
expandedClusterGroup pointer returned by getGroupFromCluster().
This fix checks the pointer. If invalid, an exception will be
thrown.

Signed-off-by: wangkx <kevin.wang@lexisnexis.com>
wangkx 7 年之前
父节点
当前提交
dd8ab97163
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      dali/base/dadfs.cpp

+ 2 - 0
dali/base/dadfs.cpp

@@ -9762,6 +9762,8 @@ static IGroup *getClusterNodeGroup(const char *clusterName, const char *type, bo
     Owned<IGroup> nodeGroup = queryNamedGroupStore().lookup(nodeGroupName);
     CInitGroups init(timems);
     Owned<IGroup> expandedClusterGroup = init.getGroupFromCluster(type, cluster, true);
+    if (!expandedClusterGroup)
+        throwStringExceptionV(0, "Failed to get group for '%s' cluster '%s'", type, clusterName);
     if (!expandedClusterGroup->equals(nodeGroup))
         throwStringExceptionV(0, "DFS cluster topology for '%s', does not match existing DFS group layout for group '%s'", clusterName, nodeGroupName.str());
     Owned<IGroup> clusterGroup = init.getGroupFromCluster(type, cluster, false);