[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: setreuid/setresuid code.

From: Roland McGrath
Subject: Re: setreuid/setresuid code.
Date: Sun, 16 Oct 2011 09:01:15 -0700 (PDT)

>         if (_hurd_id.aux.nuids == 0)
>           {
>             newaux = &ruid;
>             naux = 1;
>           }

In this case we don't touch _hurd_id at all, so nothing has changed yet.

>         else
>           {
>             _hurd_id.aux.uids[0] = ruid;
>             _hurd_id.valid = 0;
>           }

In this case we've clobbered _hurd_id with speculative data that doesn't
match our actual auth port.

> 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?

At the end we call __setauth to actually do something.  That clears
_hurd_id.valid when it installs the new port.  The only way we ever set
the valid flag is in _hurd_check_ids, when we have the information exactly
as the auth server reported it.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]