From 40e0c34e9cf1ccd64725c0079467e0e359ac0cad Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 19 Mar 2014 13:05:33 +0000 Subject: [PATCH] * fhandler_dsp.cc (fhandler_dev_dsp::fixup_after_fork): Actually call _fixup_after_fork rather than looping forever. (fhandler_dev_dsp::fixup_after_exec): Ditto. --- winsup/cygwin/ChangeLog | 6 ++++++ winsup/cygwin/passwd.cc | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index c3bfd8424..47d375094 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -4,6 +4,12 @@ _fixup_after_fork rather than looping forever. (fhandler_dev_dsp::fixup_after_exec): Ditto. +2014-03-18 Corinna Vinschen + + * passwd.cc (pg_ent::enumerate_ad): Ignore primary domain in list of + trusted domains only if all trusted domains are enumerated anyway. + Explain why. + 2014-03-18 Corinna Vinschen Partially revert patch from 2014-03-04. diff --git a/winsup/cygwin/passwd.cc b/winsup/cygwin/passwd.cc index 35a7ecf0b..b0e5ff8de 100644 --- a/winsup/cygwin/passwd.cc +++ b/winsup/cygwin/passwd.cc @@ -566,7 +566,12 @@ pg_ent::enumerate_ad () else if ((td = cygheap->dom.trusted_domain (resume - 1))) { ++resume; - if ((td->Flags & DS_DOMAIN_PRIMARY) + /* Ignore primary domain in list of trusted domains only if all + trusted domains are enumerated anyway. This handles an + annoying backward compatibility problem in mkpasswd/mkgroup. + Without this test, `mkpasswd -d PRIMARY_DOMAIN' wouldn't + work as expected. */ + if (((enums & ENUM_TDOMS_ALL) && td->Flags & DS_DOMAIN_PRIMARY) || !td->DomainSid || (!nss_db_enum_tdom (td->NetbiosDomainName) && !nss_db_enum_tdom (td->DnsDomainName))