miext/sync: Make struct _SyncObject::initialized fully ABI compatible
With a 32-bit build, putting the initialized field at the end of the
struct bumped the struct size from 20 bytes to 24, changing the layout
of other structs embedding struct _SyncObject. While this would be
acceptable on master, it caused crashes with 1.20.
Making the initialized field a char and putting it in the hole before
the beingDestroyed field restores the 32-bit ABI as well.
Fixes https://gitlab.freedesktop.org/xorg/xserver/issues/892
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Alex Goins <agoins@nvidia.com>
(cherry picked from commit 0d8cc7bb18)
			
			
This commit is contained in:
		
							parent
							
								
									5aadaac949
								
							
						
					
					
						commit
						c747dbb250
					
				| 
						 | 
				
			
			@ -43,8 +43,8 @@ struct _SyncObject {
 | 
			
		|||
    struct _SyncTriggerList *pTriglist; /* list of triggers */
 | 
			
		||||
    XID id;                     /* resource ID */
 | 
			
		||||
    unsigned char type;         /* SYNC_* */
 | 
			
		||||
    unsigned char initialized;  /* FALSE if created but not initialized */
 | 
			
		||||
    Bool beingDestroyed;        /* in process of going away */
 | 
			
		||||
    Bool initialized;           /* FALSE if created but not initialized */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef struct _SyncCounter {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue