diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2015-08-17 20:24:49 +0200 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2015-08-17 20:24:49 +0200 |
commit | 88dce3abd82c49ef879e6babcd91c1977dc212d9 (patch) | |
tree | 9658b7fff4afcb9759197932ecee6961368f3ae7 /winsup/cygwin/security.cc | |
parent | 37b6936f8b6860cda5881127b8ac272ed528ac34 (diff) | |
download | cygnal-88dce3abd82c49ef879e6babcd91c1977dc212d9.tar.gz cygnal-88dce3abd82c49ef879e6babcd91c1977dc212d9.tar.bz2 cygnal-88dce3abd82c49ef879e6babcd91c1977dc212d9.zip |
Try harder to avoid LDAP access for RFC2307 mapping
* fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Rearrange
to fall back to myself uid/gid in case we don't utilize Windows
account DBs, just as prior to 1.7.34.
* sec_helper.cc (cygpsid::get_id): Disable Samba user/group mapping per
RFC2307 if we're not utilizing Windows account DBs.
* security.cc (convert_samba_sd): Revert previous patch.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/security.cc')
-rw-r--r-- | winsup/cygwin/security.cc | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc index 5e771e257..9a94c53d1 100644 --- a/winsup/cygwin/security.cc +++ b/winsup/cygwin/security.cc @@ -1122,14 +1122,14 @@ convert_samba_sd (security_descriptor &sd_ret) return; group = sid; - if (sid_id_auth (owner) == 22 && cygheap->pg.nss_pwd_db ()) + if (sid_id_auth (owner) == 22) { struct passwd *pwd; uid_t uid = owner.get_uid (&cldap); if (uid < UNIX_POSIX_OFFSET && (pwd = internal_getpwuid (uid))) owner.getfrompw (pwd); } - if (sid_id_auth (group) == 22 && cygheap->pg.nss_grp_db ()) + if (sid_id_auth (group) == 22) { struct group *grp; gid_t gid = group.get_gid (&cldap); @@ -1150,16 +1150,14 @@ convert_samba_sd (security_descriptor &sd_ret) cygsid ace_sid ((PSID) &ace->SidStart); if (sid_id_auth (ace_sid) == 22) { - if (sid_sub_auth (ace_sid, 0) == 1 /* user */ - && cygheap->pg.nss_pwd_db ()) + if (sid_sub_auth (ace_sid, 0) == 1) /* user */ { struct passwd *pwd; uid_t uid = ace_sid.get_uid (&cldap); if (uid < UNIX_POSIX_OFFSET && (pwd = internal_getpwuid (uid))) ace_sid.getfrompw (pwd); } - else if (sid_sub_auth (ace_sid, 0) == 2 /* group */ - && cygheap->pg.nss_grp_db ()) + else if (sid_sub_auth (ace_sid, 0) == 2) /* group */ { struct group *grp; gid_t gid = ace_sid.get_gid (&cldap); |