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
							
								
									bc747f8146
								
							
						
					
					
						commit
						6dbcd4eb3d
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue