Merge pull request #1749 from ez-lbz/fix-node-name-map-duplicate
util: Fix duplicate node name map entries
diff --git a/util/node_name_map.c b/util/node_name_map.c
index 511cb92..3f6c96c 100644
--- a/util/node_name_map.c
+++ b/util/node_name_map.c
@@ -64,6 +64,7 @@
{
cl_qmap_t *map = cxt;
name_map_item_t *item;
+ cl_map_item_t *inserted;
p = strtok(p, "\"#");
if (!p)
@@ -74,7 +75,16 @@
return -1;
item->guid = guid;
item->name = strdup(p);
- cl_qmap_insert(map, item->guid, (cl_map_item_t *) item);
+ if (!item->name) {
+ free(item);
+ return -1;
+ }
+
+ inserted = cl_qmap_insert(map, item->guid, (cl_map_item_t *)item);
+ if (inserted != (cl_map_item_t *)item) {
+ free(item->name);
+ free(item);
+ }
return 0;
}