From 6dbcd4eb3d992977d86e1ec7fc5dd40c25af1eb6 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 ab4b4198..29f5e813 100644 --- a/src/graph.c +++ b/src/graph.c @@ -190,7 +190,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