-/* Copyright (C) 1991 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
__mutex_lock (&_hurd_idlock);
if (!_hurd_id_valid)
{
- error_t err = __auth_getids (_hurd_auth, &_hurd_id);
+ error_t err = _HURD_PORT_USE (&_hurd_auth,
+ __auth_getids (port, &_hurd_id));
if (err)
{
__mutex_unlock (&_hurd_idlock);
if (_hurd_id.gids[i] == gid)
{
/* We already have this gid. Swap it with gids[0]
- so getgid will return it. */
+ so getegid will return it. */
_hurd_id.gids[i] = _hurd_id.gids[0];
break;
}
sizeof (_hurd_id.gids[0])))
{
__mutex_unlock (&_hurd_idlock);
- errno = ENOMEM; /* ? */
+ errno = ENOMEM; /* XXX ? */
return -1;
}
else
_hurd_id.rgid = _hurd_id.gids[0];
- if (err = auth_makeauth (_hurd_auth, &_hurd_id, &newauth))
- {
- _hurd_id_valid = 0;
- __mutex_unlock (&_hurd_idlock);
- return __hurd_fail (err);
- }
- else
- {
- int err = __setauth (newauth);
- __mach_port_deallocate (__mach_task_self (), newauth);
- return err;
- }
+ err = _HURD_PORT_USE (&_hurd_auth,
+ __auth_makeauth (port, &_hurd_id, &newauth));
+ _hurd_id_valid = 0;
+ __mutex_unlock (&_hurd_idlock);
+
+ if (err)
+ return __hurd_fail (err);
+
+ err = __setauth (newauth);
+ __mach_port_deallocate (__mach_task_self (), newauth);
+ return err;
}