diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2024-02-20 23:54:25 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2024-02-26 10:04:32 +0100 |
commit | 69aba646123cef13a6aa9dbec175f1e22357df2e (patch) | |
tree | 3be26408978ef0e60225868695767fa2f295bfdc | |
parent | 50240f20ecfc7bc7a2961c25f96f5b9345c984ac (diff) | |
download | newlib-69aba646123cef13a6aa9dbec175f1e22357df2e.zip newlib-69aba646123cef13a6aa9dbec175f1e22357df2e.tar.gz newlib-69aba646123cef13a6aa9dbec175f1e22357df2e.tar.bz2 |
Cygwin: getgrent/getpwent: avoid local enumeration on DCs
...if we're supposed to enumerate the AD accounts anyway. This
avoids some useless duplication.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r-- | winsup/cygwin/passwd.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/winsup/cygwin/passwd.cc b/winsup/cygwin/passwd.cc index 0be8aa6..b8457a4 100644 --- a/winsup/cygwin/passwd.cc +++ b/winsup/cygwin/passwd.cc @@ -385,6 +385,11 @@ pg_ent::getent (void) case from_local: if (from_db && nss_db_enum_local () + /* Domain controller? If so, sam and ad are one and the same + and "local ad" would list all domain accounts twice without + this test. */ + && (cygheap->dom.account_flat_name ()[0] != L'@' + || !nss_db_enum_primary ()) && (entry = enumerate_local ())) return entry; state = from_sam; |