OSDN Git Service

* include/sys/cygwin.h: Add new cygwin_getinfo_type
authorcorinna <corinna>
Tue, 13 Oct 2009 10:23:31 +0000 (10:23 +0000)
committercorinna <corinna>
Tue, 13 Oct 2009 10:23:31 +0000 (10:23 +0000)
commit9f4e9db3721f5a0c6aa01b0235b64463b600aae9
tree9aa2f0c633c9b62a4a925104a7f15d3dfb11f14a
parent82c8188c1216155c17757ac8ca6f27a2b0c34597
* include/sys/cygwin.h: Add new cygwin_getinfo_type
CW_SET_EXTERNAL_TOKEN.
Add new enum CW_TOKEN_IMPERSONATION, CW_TOKEN_RESTRICTED.
* cygheap.h (cyguser): New flags ext_token_is_restricted,
curr_token_is_restricted and setuid_to_restricted.
* external.cc (cygwin_internal): Add CW_SET_EXTERNAL_TOKEN.
* sec_auth.cc (set_imp_token): New function.
(cygwin_set_impersonation_token): Call set_imp_token ().
* security.h (set_imp_token): New prototype.
* spawn.cc (spawn_guts): Use CreateProcessAsUserW if restricted token
was enabled by setuid().  Do not create new window station in this case.
* syscalls.cc (seteuid32): Add handling of restricted external tokens.
Set HANDLE_FLAG_INHERIT for primary token.
(setuid32): Set setuid_to_restricted flag.
* uinfo.cc (uinfo_init): Do not reimpersonate if restricted token was
enabled by setuid ().  Initialize user.*_restricted flags.
winsup/cygwin/ChangeLog
winsup/cygwin/cygheap.h
winsup/cygwin/external.cc
winsup/cygwin/include/sys/cygwin.h
winsup/cygwin/sec_auth.cc
winsup/cygwin/security.h
winsup/cygwin/spawn.cc
winsup/cygwin/syscalls.cc
winsup/cygwin/uinfo.cc