if (err = __USEPORT (AUTH, __auth_makeauth (port, &addauth, MACH_MSG_TYPE_MOVE_SEND, 1, NULL, 0, NULL, 0, NULL, 0, NULL, 0, &newauth)))
error_t make_list (uid_t **newlistp, mach_msg_type_number_t *newlistlen, uid_t *exist, mach_msg_type_number_t nexist, uid_t *new, mach_msg_type_number_t nnew) { error_t urp; int i, j, k; vm_size_t offset;  urp = vm_allocate (mach_task_self (), (vm_address_t *) newlistp, nexist + nnew * sizeof (uid_t), 1); if (urp) return urp;  j = 0; for (i = 0; i < nexist; i++) (*newlistp)[j++] = exist[i];  for (i = 0; i < nnew; i++) { for (k = 0; k < nexist; k++) if (exist[k] == new[i]) break; if (k < nexist) continue;  (*newlistp)[j++] = new[i]; }  offset = (round_page (nexist + nnew * sizeof (uid_t)) - round_page (j * sizeof (uid_t))); if (offset) vm_deallocate (mach_task_self (), (vm_address_t) (*newlistp + (nexist + nnew * sizeof (uid_t))), offset); *newlistlen = j; return 0; }    genuids = gengids = auxuids = auxgids = 0; ngenuids = ngengids = nauxuids = nauxgids = 0; err = __auth_getids (addauth, &genuids, &ngenuids, &auxuids, &nauxuids, &gengids, &ngengids, &auxgids, &nauxgids); if (err)
_S_msg_add_auth (mach_port_t me,		 auth_t addauth){  error_t err;  auth_t newauth;  if (err = __USEPORT (AUTH,		       __auth_makeauth (port,					&addauth, MACH_MSG_TYPE_MOVE_SEND, 1,					NULL, 0,					NULL, 0,					NULL, 0,					NULL, 0,					&newauth)))    return err;  err = __setauth (newauth);  __mach_port_deallocate (__mach_task_self (), newauth);  if (err)    return errno;  return 0;}