=== sys/compat/freebsd32/freebsd32_ipc.h ================================================================== --- sys/compat/freebsd32/freebsd32_ipc.h (revision 186495) +++ sys/compat/freebsd32/freebsd32_ipc.h (local) @@ -30,10 +30,10 @@ #define _COMPAT_FREEBSD32_FREEBSD32_IPC_H_ struct ipc_perm32 { - uint16_t cuid; - uint16_t cgid; - uint16_t uid; - uint16_t gid; + uint32_t cuid; + uint32_t cgid; + uint32_t uid; + uint32_t gid; uint16_t mode; uint16_t seq; uint32_t key; === sys/sys/ipc.h ================================================================== --- sys/sys/ipc.h (revision 186495) +++ sys/sys/ipc.h (local) @@ -69,15 +69,12 @@ #define _UID_T_DECLARED #endif -/* - * XXX almost all members have wrong types. - */ struct ipc_perm { - unsigned short cuid; /* creator user id */ - unsigned short cgid; /* creator group id */ - unsigned short uid; /* user id */ - unsigned short gid; /* group id */ - unsigned short mode; /* r/w permission */ + uid_t cuid; /* creator user id */ + gid_t cgid; /* creator group id */ + uid_t uid; /* user id */ + gid_t gid; /* group id */ + mode_t mode; /* r/w permission */ unsigned short seq; /* sequence # (to generate unique ipcid) */ key_t key; /* user specified msg/sem/shm key */ };