2010-02-26 Pierre Humblet <Pierre.Humblet@ieee.org>

* security.cc (check_access): Use user.imp_token if appropriate.
        Set errno and return if DuplicateTokenEx fails .
This commit is contained in:
Pierre Humblet 2010-02-26 14:51:59 +00:00
parent e5ddf94aa1
commit a90dc29d18
2 changed files with 16 additions and 10 deletions

View File

@ -1,3 +1,8 @@
2010-02-26 Pierre Humblet <Pierre.Humblet@ieee.org>
* security.cc (check_access): Use user.imp_token if appropriate.
Set errno and return if DuplicateTokenEx fails .
2010-02-26 Corinna Vinschen <corinna@vinschen.de>
Remove all traces of __CYGWIN_USE_BIG_TYPES__.

View File

@ -751,16 +751,17 @@ check_access (security_descriptor &sd, GENERIC_MAPPING &mapping,
? cygheap->user.imp_token ()
: hProcImpToken);
if (!tok && !DuplicateTokenEx (hProcToken, MAXIMUM_ALLOWED, NULL,
SecurityImpersonation, TokenImpersonation,
&hProcImpToken))
#ifdef DEBUGGING
system_printf ("DuplicateTokenEx failed, %E");
#else
syscall_printf ("DuplicateTokenEx failed, %E");
#endif
else
tok = hProcImpToken;
if (!tok)
{
if (!DuplicateTokenEx (hProcToken, MAXIMUM_ALLOWED, NULL,
SecurityImpersonation, TokenImpersonation,
&hProcImpToken))
{
__seterrno ();
return ret;
}
tok = hProcImpToken;
}
if (!AccessCheck (sd, tok, desired, &mapping, pset, &plen, &granted, &status))
__seterrno ();