浏览代码

Fix: Safe access to NodeId

Stefan Profanter 8 年之前
父节点
当前提交
cedc9e61f4
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      src/server/ua_server.c

+ 3 - 1
src/server/ua_server.c

@@ -911,7 +911,9 @@ UA_Server * UA_Server_new(const UA_ServerConfig config) {
     
     // If we are in an UA conformant namespace, the above function just created a full ServerType object.
     // Before readding every variable, delete whatever got instantiated.
-    deleteInstanceChildren(server, &servernode->nodeId);
+    // here we can't reuse servernode->nodeId because it may be deleted in addNodeInternalWithType if the node could not be added
+    UA_NodeId serverNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER);
+    deleteInstanceChildren(server, &serverNodeId);
     
     UA_VariableNode *namespaceArray = UA_NodeStore_newVariableNode();
     copyNames((UA_Node*)namespaceArray, "NamespaceArray");