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

Merge pull request #13039 from jakesmith/hpcc-22916-memcpy-null

HPCC-22916 Fix undefined use of memcpy nullptr

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
Gavin Halliday пре 5 година
родитељ
комит
15130fc7df
1 измењених фајлова са 5 додато и 2 уклоњено
  1. 5 2
      system/jlib/jptree.cpp

+ 5 - 2
system/jlib/jptree.cpp

@@ -3238,13 +3238,16 @@ void CAtomPTree::setAttribute(const char *key, const char *val)
     {
         CriticalBlock block(hashcrit);
         AttrValue *newattrs = newAttrArray(numAttrs+1);
-        memcpy(newattrs, attrs, numAttrs*sizeof(AttrValue));
+        if (attrs)
+        {
+            memcpy(newattrs, attrs, numAttrs*sizeof(AttrValue));
+            freeAttrArray(attrs, numAttrs);
+        }
         v = &newattrs[numAttrs];
         if (!v->key.set(key))
             v->key.setPtr(attrHT->addkey(key, isnocase()));
         if (!v->value.set(val))
             v->value.setPtr(attrHT->addval(val));
-        freeAttrArray(attrs, numAttrs);
         numAttrs++;
         attrs = newattrs;
     }