mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	core: avoid crash when reading corrupted git data
If a merge mishap creates inconsistent data for a dive in git storage, where the dive references a dive site that no longer exists, the app would crash when trying to open the cloud storage. I don't think a NULL dive could ever happen, but this seems fairly cheap insurance. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									f7a2ad71ca
								
							
						
					
					
						commit
						3b42aada18
					
				
					 2 changed files with 9 additions and 0 deletions
				
			
		|  | @ -1,3 +1,4 @@ | ||||||
|  | - core: avoid crash with corrupted cloud storage | ||||||
| - planner: make ESC (cancel plan) work when moving handles | - planner: make ESC (cancel plan) work when moving handles | ||||||
| - dive list: make dive guide visible in dive list [#3382] | - dive list: make dive guide visible in dive list [#3382] | ||||||
| - general: rename dive master to dive guide | - general: rename dive master to dive guide | ||||||
|  |  | ||||||
|  | @ -371,6 +371,14 @@ void purge_empty_dive_sites(struct dive_site_table *ds_table) | ||||||
| void add_dive_to_dive_site(struct dive *d, struct dive_site *ds) | void add_dive_to_dive_site(struct dive *d, struct dive_site *ds) | ||||||
| { | { | ||||||
| 	int idx; | 	int idx; | ||||||
|  | 	if (!d) { | ||||||
|  | 		fprintf(stderr, "Warning: add_dive_to_dive_site called with NULL dive\n"); | ||||||
|  | 		return; | ||||||
|  | 	} | ||||||
|  | 	if (!ds) { | ||||||
|  | 		fprintf(stderr, "Warning: add_dive_to_dive_site called with NULL dive site\n"); | ||||||
|  | 		return; | ||||||
|  | 	} | ||||||
| 	if (d->dive_site == ds) | 	if (d->dive_site == ds) | ||||||
| 		return; | 		return; | ||||||
| 	if (d->dive_site) { | 	if (d->dive_site) { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue