From d2732abcc7ab0b10577c4eeedb2135d8f5f6b4d5 Mon Sep 17 00:00:00 2001 From: Maximilian Stein Date: Tue, 16 Jan 2018 00:45:38 +0100 Subject: [PATCH] Fix SEGFAULT when trying to connect to IPv6 peer in non-IPv6 environment Using my tinc setup I observe spurious SEGFAULTs in the daemon process. My configuration comprises a proxy (type exec) and the peer's address is given by its domain name. The domain resolves to both IPv4 and IPv6. As IPv6 is not working in my environment, all connection attempts to the resolved IPv6 addresses fail. Sometimes, after such a failure, the segfault occurs. Apparently, the issue is caused by a use after free due to failing to reset a pointer. --- src/net.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/net.c b/src/net.c index 4b64492d..1fecd88f 100644 --- a/src/net.c +++ b/src/net.c @@ -218,6 +218,7 @@ void terminate_connection(connection_t *c, bool report) { } edge_del(c->edge); + c->edge = NULL; /* Run MST and SSSP algorithms */ -- 2.20.1