diff options
author | Pierre Humblet <phumblet@phumblet.no-ip.org> | 2003-09-16 00:45:50 +0000 |
---|---|---|
committer | Pierre Humblet <phumblet@phumblet.no-ip.org> | 2003-09-16 00:45:50 +0000 |
commit | c61ada9bd3d29734cce244a5cd39ec2cc5882454 (patch) | |
tree | bb2c018a739c09593a939283b29cb410ddc82b18 /winsup/cygwin/syscalls.cc | |
parent | a9993197f2d23aeb89a9546a5051addd37e1563c (diff) | |
download | cygnal-c61ada9bd3d29734cce244a5cd39ec2cc5882454.tar.gz cygnal-c61ada9bd3d29734cce244a5cd39ec2cc5882454.tar.bz2 cygnal-c61ada9bd3d29734cce244a5cd39ec2cc5882454.zip |
2003-09-15 Pierre Humblet <pierre.humblet@ieee.org>
* security.h (__sec_user): Add "access2" argument.
(sec_acl): Add "original" and "access2" arguments.
(sec_user): Add "sid2" and "access2" argument. Remove dependence on
allow_ntsec.
(sec_user_nih): Ditto.
* sec_helper.cc (__sec_user): Add "has_security" test.
Call sec_acl with new arguments, letting it handle original_sid.
(sec_acl): Add "original" and "access2" arguments. Handle original_sid
depending on flag but avoiding duplicates. Use "access2" for sid2.
* pinfo.cc (pinfo::init): Use security attributes created by sec_user
when creating the mapping.
* security.cc (create_token): Adjust arguments in call to sec_acl.
Call sec_user instead of __sec_user.
* syscall.cc (seteuid32): Adjust arguments in call to sec_acl. Remove
now unnecessary test. Remove useless conversions to psid.
* dcrt0.cc (dll_crt0_1): Call cygsid::init before pinfo_init.
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 041482346..c9d926462 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -2076,7 +2076,6 @@ seteuid32 (__uid32_t uid) user_groups &groups = cygheap->user.groups; HANDLE ptok, new_token = INVALID_HANDLE_VALUE; struct passwd * pw_new; - cygpsid origpsid, psid2 (NO_SID); BOOL token_is_internal, issamesid; pw_new = internal_getpwuid (uid); @@ -2121,9 +2120,7 @@ seteuid32 (__uid32_t uid) if (cygheap->user.current_token != new_token) { char dacl_buf[MAX_DACL_LEN (5)]; - if (usersid != (origpsid = cygheap->user.orig_sid ())) - psid2 = usersid; - if (sec_acl ((PACL) dacl_buf, FALSE, origpsid, psid2)) + if (sec_acl ((PACL) dacl_buf, true, false, usersid)) { TOKEN_DEFAULT_DACL tdacl; tdacl.DefaultDacl = (PACL) dacl_buf; @@ -2171,7 +2168,7 @@ seteuid32 (__uid32_t uid) } CloseHandle (ptok); - issamesid = (usersid == (psid2 = cygheap->user.sid ())); + issamesid = (usersid == cygheap->user.sid ()); cygheap->user.set_sid (usersid); cygheap->user.current_token = new_token == ptok ? INVALID_HANDLE_VALUE : new_token; |