From: Guus Sliepen <guus@tinc-vpn.org>
Date: Tue, 26 Jun 2012 12:22:57 +0000 (+0200)
Subject: Fix crash when handling the ALRM signal.
X-Git-Tag: import-tinc-1.1~368
X-Git-Url: https://git.meshlink.io/?a=commitdiff_plain;h=bce177767d521b47efd458c5cd570959a98d940d;p=meshlink

Fix crash when handling the ALRM signal.

In retry() the function do_outgoing_connection() is called, which can delete
items from the connection_tree, so when walking the tree we must first save the
pointer to the next item.
---

diff --git a/src/net.c b/src/net.c
index 295546df..863dd762 100644
--- a/src/net.c
+++ b/src/net.c
@@ -341,9 +341,10 @@ int reload_configuration(void) {
 
 void retry(void) {
 	connection_t *c;
-	splay_node_t *node;
+	splay_node_t *node, *next;
 
-	for(node = connection_tree->head; node; node = node->next) {
+	for(node = connection_tree->head; node; node = next) {
+		next = node->next;
 		c = node->data;
 		
 		if(c->outgoing && !c->node) {