summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/uinfo.cc7
2 files changed, 12 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 3abdc0c82..8650c1a8b 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2014-08-31 Corinna Vinschen <corinna@vinschen.de>
+ * uinfo.cc (pwdgrp::fetch_account_from_windows): Disallow user accounts
+ as groups. Add comment.
+
+2014-08-31 Corinna Vinschen <corinna@vinschen.de>
+
* uinfo.cc (cygheap_pwdgrp::init): Fix comment. Rearrange code for
style.
(cygheap_pwdgrp::nss_init_line): Disable db_prefix and db_separator
diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc
index 4dff53ade..6d1b5b7a8 100644
--- a/winsup/cygwin/uinfo.cc
+++ b/winsup/cygwin/uinfo.cc
@@ -1504,6 +1504,13 @@ pwdgrp::fetch_account_from_windows (fetch_user_arg_t &arg, cyg_ldap *pldap)
switch (acc_type)
{
case SidTypeUser:
+ /* Don't allow users as group. While this is technically possible,
+ it doesn't make sense in a POSIX scenario. It *is* used for
+ Microsoft Accounts, but those are converted to well-known groups
+ above. */
+ if (is_group ())
+ return NULL;
+ /*FALLTHRU*/
case SidTypeGroup:
case SidTypeAlias:
/* Predefined alias? */