diff --git a/src/tools.c b/src/tools.c
index a966fe979b4d91edb7040589cd56e23083dc80ef..dd0caee9becf8904a1f3df411014801360fab5ab 100644
--- a/src/tools.c
+++ b/src/tools.c
@@ -645,7 +645,7 @@ void swmod_add_ee_in_list(struct list_head *ee_list, ExecEnv_t *ee)
 		PRINT_ERR("Out of memory");
 		return;
 	}
-
+	memset(node, 0, sizeof(ExecEnvNode));
 	memcpy(&node->env, ee, sizeof(ExecEnv_t));
 	INIT_LIST_HEAD(&node->list);
 	list_add_tail(&node->list, ee_list);
@@ -673,6 +673,7 @@ void swmod_add_eu_in_list(struct list_head *eu_list, ExecUnit *eu)
 		return;
 	}
 
+	memset(node, 0, sizeof(EuNode));
 	memcpy(&node->eu, eu, sizeof(ExecUnit));
 	INIT_LIST_HEAD(&node->list);
 	list_add_tail(&node->list, eu_list);
@@ -841,6 +842,7 @@ void buffer_add_line(struct list_head *head, char *entry)
 		return;
 	}
 
+	memset(node, 0, sizeof(*node));
 	swmod_strncpy(node->line, entry, MAX_LEN_128);
 
 	INIT_LIST_HEAD(&node->list);