From f75e6f61f280b138082b87ce69bdbdee3e4ba56e Mon Sep 17 00:00:00 2001 From: thorkill Date: Sun, 19 Jul 2015 18:53:29 +0200 Subject: [PATCH] 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. --- src/graph.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/graph.c b/src/graph.c index 49161c1..56ebb61 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 -- 2.25.1