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.
This commit is contained in:
parent
f92c3446f2
commit
f75e6f61f2
1 changed files with 1 additions and 1 deletions
|
@ -173,7 +173,7 @@ static void sssp_bfs(void) {
|
||||||
|
|
||||||
if(e->to->status.visited
|
if(e->to->status.visited
|
||||||
&& (!e->to->status.indirect || indirect)
|
&& (!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;
|
continue;
|
||||||
|
|
||||||
// Only update nexthop if it doesn't increase the path length
|
// Only update nexthop if it doesn't increase the path length
|
||||||
|
|
Loading…
Reference in a new issue