From: Günther Deschner Date: Thu, 17 Feb 2011 13:37:32 +0000 (+0100) Subject: s3-lsa: only proceed in _lsa_EnumTrustedDomainsEx when backend has trusted domain... X-Git-Tag: tevent-0.9.11~548 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=67dfc87291a342dc17dbb7bcee06157dd614f3e3;p=thirdparty%2Fsamba.git s3-lsa: only proceed in _lsa_EnumTrustedDomainsEx when backend has trusted domain support. Guenther --- diff --git a/source3/passdb/pdb_ipa.c b/source3/passdb/pdb_ipa.c index 3108c5e1f01..9e52e952a10 100644 --- a/source3/passdb/pdb_ipa.c +++ b/source3/passdb/pdb_ipa.c @@ -705,7 +705,7 @@ static NTSTATUS ipasam_enum_trusteddoms(struct pdb_methods *methods, static uint32_t pdb_ipasam_capabilities(struct pdb_methods *methods) { - return PDB_CAP_STORE_RIDS | PDB_CAP_ADS; + return PDB_CAP_STORE_RIDS | PDB_CAP_ADS | PDB_CAP_TRUSTED_DOMAINS_EX; } static struct pdb_domain_info *pdb_ipasam_get_domain_info(struct pdb_methods *pdb_methods, diff --git a/source3/rpc_server/lsa/srv_lsa_nt.c b/source3/rpc_server/lsa/srv_lsa_nt.c index 9f05433631a..4b4a27c2a87 100644 --- a/source3/rpc_server/lsa/srv_lsa_nt.c +++ b/source3/rpc_server/lsa/srv_lsa_nt.c @@ -3297,6 +3297,15 @@ NTSTATUS _lsa_EnumTrustedDomainsEx(struct pipes_struct *p, int i; NTSTATUS nt_status; + /* bail out early if pdb backend is not capable of ex trusted domains, + * if we dont do that, the client might not call + * _lsa_EnumTrustedDomains() afterwards - gd */ + + if (!(pdb_capabilities() & PDB_CAP_TRUSTED_DOMAINS_EX)) { + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; + } + if (!find_policy_by_hnd(p, r->in.handle, (void **)(void *)&info)) return NT_STATUS_INVALID_HANDLE;