diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-10-13 10:23:31 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-10-13 10:23:31 +0000 |
commit | 0191627a260aee41f464d3e0a2c2d4d067cad5ad (patch) | |
tree | fbb1b641d62b3a8955ff1c98b293c8e4fabe4e33 /winsup/cygwin/include/sys/cygwin.h | |
parent | 6c41e710c91ef093e58e6b6923b0696d9383a685 (diff) | |
download | cygnal-0191627a260aee41f464d3e0a2c2d4d067cad5ad.tar.gz cygnal-0191627a260aee41f464d3e0a2c2d4d067cad5ad.tar.bz2 cygnal-0191627a260aee41f464d3e0a2c2d4d067cad5ad.zip |
* 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.
Diffstat (limited to 'winsup/cygwin/include/sys/cygwin.h')
-rw-r--r-- | winsup/cygwin/include/sys/cygwin.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/winsup/cygwin/include/sys/cygwin.h b/winsup/cygwin/include/sys/cygwin.h index 5f38278d7..ce9bebfdd 100644 --- a/winsup/cygwin/include/sys/cygwin.h +++ b/winsup/cygwin/include/sys/cygwin.h @@ -143,9 +143,17 @@ typedef enum CW_SET_DOS_FILE_WARNING, CW_SET_PRIV_KEY, CW_SETERRNO, - CW_EXIT_PROCESS + CW_EXIT_PROCESS, + CW_SET_EXTERNAL_TOKEN } cygwin_getinfo_types; +/* Token type for CW_SET_EXTERNAL_TOKEN */ +enum +{ + CW_TOKEN_IMPERSONATION = 0, + CW_TOKEN_RESTRICTED = 1 +}; + #define CW_NEXTPID 0x80000000 /* or with pid to get next one */ unsigned long cygwin_internal (cygwin_getinfo_types, ...); |