Hello,
I'm having a look at the setreuid code, and there's something I don't
understand:
newaux = _hurd_id.aux.uids;
naux = _hurd_id.aux.nuids;
if (ruid != -1)
{
if (_hurd_id.aux.nuids == 0)
{
newaux = &ruid;
naux = 1;
}
else
{
_hurd_id.aux.uids[0] = ruid;
_hurd_id.valid = 0;
}
}
why is the valid field set to 0 in the case where it is actually updated
with the correct value? In case the call fails? Why don't we also set
valid to 0 in the first case, since _hurd_id is not updated in that
case?
Samuel