--- kernel/bsd/sys/ucred.h 2018/04/24 18:26:01 1.1.1.1 +++ kernel/bsd/sys/ucred.h 2018/04/24 18:28:25 1.1.1.2 @@ -67,7 +67,7 @@ * Credentials. */ struct ucred { - u_short cr_ref; /* reference count */ + u_long cr_ref; /* reference count */ uid_t cr_uid; /* effective user id */ short cr_ngroups; /* number of groups */ gid_t cr_groups[NGROUPS]; /* groups */ @@ -77,7 +77,11 @@ struct ucred { #define FSCRED ((struct ucred *)-1) /* filesystem credential */ #ifdef _KERNEL -#define crhold(cr) (cr)->cr_ref++ +#define crhold(cr) \ +{ \ + if (++(cr)->cr_ref == 0) \ + panic("crhold"); \ +} struct ucred *crcopy __P((struct ucred *cr)); struct ucred *crdup __P((struct ucred *cr));