82 |
|
|
83 |
/* id management. */ |
/* id management. */ |
84 |
|
|
85 |
inline void idvec_copyout (struct idvec *idvec, uid_t **ids, uid_t *nids) |
static inline void |
86 |
|
idvec_copyout (struct idvec *idvec, uid_t **ids, size_t *nids) |
87 |
{ |
{ |
88 |
if (idvec->num > *nids) |
if (idvec->num > *nids) |
89 |
*ids = idvec->ids; |
*ids = idvec->ids; |
100 |
kern_return_t |
kern_return_t |
101 |
S_auth_getids (struct authhandle *auth, |
S_auth_getids (struct authhandle *auth, |
102 |
uid_t **euids, |
uid_t **euids, |
103 |
u_int *neuids, |
size_t *neuids, |
104 |
uid_t **auids, |
uid_t **auids, |
105 |
u_int *nauids, |
size_t *nauids, |
106 |
uid_t **egids, |
uid_t **egids, |
107 |
u_int *negids, |
size_t *negids, |
108 |
uid_t **agids, |
uid_t **agids, |
109 |
u_int *nagids) |
size_t *nagids) |
110 |
{ |
{ |
111 |
if (! auth) |
if (! auth) |
112 |
return EOPNOTSUPP; |
return EOPNOTSUPP; |
119 |
/* Implement auth_makeauth as described in <hurd/auth.defs>. */ |
/* Implement auth_makeauth as described in <hurd/auth.defs>. */ |
120 |
kern_return_t |
kern_return_t |
121 |
S_auth_makeauth (struct authhandle *auth, |
S_auth_makeauth (struct authhandle *auth, |
122 |
mach_port_t *authpts, u_int nauths, |
mach_port_t *authpts, size_t nauths, |
123 |
uid_t *euids, u_int neuids, |
uid_t *euids, size_t neuids, |
124 |
uid_t *auids, u_int nauids, |
uid_t *auids, size_t nauids, |
125 |
uid_t *egids, u_int negids, |
uid_t *egids, size_t negids, |
126 |
uid_t *agids, u_int nagids, |
uid_t *agids, size_t nagids, |
127 |
mach_port_t *newhandle) |
mach_port_t *newhandle) |
128 |
{ |
{ |
129 |
struct authhandle *newauth, *auths[1 + nauths]; |
struct authhandle *newauth, *auths[1 + nauths]; |
130 |
int hasroot = 0; |
int hasroot = 0; |
131 |
error_t err; |
error_t err; |
132 |
u_int i, j; |
size_t i, j; |
133 |
|
|
134 |
if (!auth) |
if (!auth) |
135 |
return EOPNOTSUPP; |
return EOPNOTSUPP; |
353 |
mach_port_t newport, |
mach_port_t newport, |
354 |
mach_msg_type_name_t newport_type, |
mach_msg_type_name_t newport_type, |
355 |
uid_t **euids, |
uid_t **euids, |
356 |
u_int *neuids, |
size_t *neuids, |
357 |
uid_t **auids, |
uid_t **auids, |
358 |
u_int *nauids, |
size_t *nauids, |
359 |
uid_t **egids, |
uid_t **egids, |
360 |
u_int *negids, |
size_t *negids, |
361 |
uid_t **agids, |
uid_t **agids, |
362 |
u_int *nagids) |
size_t *nagids) |
363 |
{ |
{ |
364 |
struct pending *u; |
struct pending *u; |
365 |
struct authhandle *user; |
struct authhandle *user; |