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>
This commit is contained in:
Michel Dänzer 2019-09-23 18:35:41 +02:00 committed by Michel Dänzer
parent 6036e84527
commit 0d8cc7bb18
1 changed files with 1 additions and 1 deletions

View File

@ -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 {