Always throw out the whole screen array
If n < screens_len, screens_len did not get updated. So boundary checks wouldn't catch, if screens between n and screens_len are accessed. This will prevent such an error type in the future.
This commit is contained in:
		
							parent
							
								
									9bcb27f2e8
								
							
						
					
					
						commit
						121ddd2b94
					
				| @ -77,12 +77,8 @@ void init_screens(void) | ||||
| void alloc_screen_ar(int n) | ||||
| { | ||||
|         assert(n > 0); | ||||
|         if (n <= screens_len) return; | ||||
| 
 | ||||
|         screens = g_realloc(screens, n * sizeof(struct screen_info)); | ||||
| 
 | ||||
|         memset(screens, 0, n * sizeof(struct screen_info)); | ||||
| 
 | ||||
|         g_free(screens); | ||||
|         screens = g_malloc0(n * sizeof(struct screen_info)); | ||||
|         screens_len = n; | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Benedikt Heine
						Benedikt Heine