Explorar o código

HPCC-22104 fix envgen2 crash when iplist has more than 6 ips

Include HPCC-22089 fix xpath check
xwang2713 %!s(int64=6) %!d(string=hai) anos
pai
achega
ac90e77e8e

+ 1 - 1
deployment/configenv/xml_jlibpt/ConfigEnv.cpp

@@ -216,7 +216,7 @@ void ConfigEnv::setAttribute(const char *xpath , const char* attrName, const cha
 {
    IPropertyTree * envTree = m_envHelper->getEnvTree();
    IPropertyTree * pAttrTree = envTree->queryPropTree(xpath);
-   if (pAttrTree)
+   if (!pAttrTree)
    {
       pAttrTree = createPTree();
       pAttrTree->appendProp(attrName, attrValue);

+ 0 - 12
deployment/configenv/xml_jlibpt/EnvHelper.cpp

@@ -78,7 +78,6 @@ EnvHelper::~EnvHelper()
   m_buildSetTree.clear();
   if (m_envCfgOptions) delete m_envCfgOptions;
   if (m_genEnvRules) delete m_genEnvRules;
-  if (m_numOfCompSigned) delete [] m_numOfCompSigned;
 }
 
 
@@ -144,8 +143,6 @@ void EnvHelper::init(IPropertyTree *config)
       }
    }
 
-   m_numOfCompSigned = NULL;
-
 }
 
 EnvHelper * EnvHelper::setEnvTree(StringBuffer &envXml)
@@ -236,15 +233,6 @@ void EnvHelper::processNodeAddress(IPropertyTree * param)
      processNodeAddress(ipFileName, m_ipArray, true);
    }
 
-   if (m_ipArray.ordinality() > 0)
-   {
-     if (m_numOfCompSigned) delete [] m_numOfCompSigned;
-     m_numOfCompSigned = new int(m_ipArray.ordinality());
-     for (unsigned i=0; i < m_ipArray.ordinality(); i++)
-       m_numOfCompSigned[i] = 0;
-   }
-
-
 }
 
 bool EnvHelper::getCompNodeList(const char * compName, StringArray *ipList, const char *cluster)

+ 0 - 1
deployment/configenv/xml_jlibpt/EnvHelper.hpp

@@ -110,7 +110,6 @@ private:
    IPropertyTree * m_config;
 
    StringArray m_ipArray;
-   int *m_numOfCompSigned;
    int m_supportIpListPosition = 0;
 
    MapStringToMyClass<IConfigComp> m_compMap;