From: thorkill Date: Sun, 19 Jul 2015 16:53:29 +0000 (+0200) Subject: Do not access e->to->prevedge if not defined X-Git-Tag: release-1.1pre12~99 X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=commitdiff_plain;h=f75e6f61f280b138082b87ce69bdbdee3e4ba56e Do not access e->to->prevedge if not defined In some cases - mostly when e->to == myself the prevedge is set to NULL, causing invalid memory access. In rare cases this may lead to malformed mst or segfaults. --- diff --git a/src/graph.c b/src/graph.c index 49161c16..56ebb611 100644 --- a/src/graph.c +++ b/src/graph.c @@ -173,7 +173,7 @@ static void sssp_bfs(void) { if(e->to->status.visited && (!e->to->status.indirect || indirect) - && (e->to->distance != n->distance + 1 || e->weight >= e->to->prevedge->weight)) + && (e->to->prevedge && (e->to->distance != n->distance + 1 || e->weight >= e->to->prevedge->weight))) continue; // Only update nexthop if it doesn't increase the path length