Make sure resolved addressed for outgoing connections are freed, if there are any.
[tinc] / src / net_setup.c
index ccd600b..f53127b 100644 (file)
@@ -572,8 +572,14 @@ void close_network_connections(void)
                next = node->next;
                c = node->data;
 
-               if(c->outgoing)
-                       free(c->outgoing->name), free(c->outgoing), c->outgoing = NULL;
+               if(c->outgoing) {
+                       if(c->outgoing->ai)
+                               freeaddrinfo(c->outgoing->ai);
+                       free(c->outgoing->name);
+                       free(c->outgoing);
+                       c->outgoing = NULL;
+               }
+
                terminate_connection(c, false);
        }