X-Git-Url: http://git.samba.org/?p=samba.git;a=blobdiff_plain;f=source3%2Frpc_server%2Flsa%2Fsrv_lsa_nt.c;fp=source3%2Frpc_server%2Flsa%2Fsrv_lsa_nt.c;h=4802c495910dde013fc95289b9af80c5a4db69e7;hp=d74ed73fddf7d970e6957517d1533fc450b735e9;hb=d1e829bbabc9d2f2fdbe2e6fde57bf1e0f441b81;hpb=426cf362ed672d44e266c18d58dff1cbe5f61c53 diff --git a/source3/rpc_server/lsa/srv_lsa_nt.c b/source3/rpc_server/lsa/srv_lsa_nt.c index d74ed73fddf..4802c495910 100644 --- a/source3/rpc_server/lsa/srv_lsa_nt.c +++ b/source3/rpc_server/lsa/srv_lsa_nt.c @@ -1316,12 +1316,8 @@ NTSTATUS _lsa_LookupNames2(struct pipes_struct *p, return status; } -/*************************************************************************** - _lsa_LookupNames3 - ***************************************************************************/ - -NTSTATUS _lsa_LookupNames3(struct pipes_struct *p, - struct lsa_LookupNames3 *r) +static NTSTATUS _lsa_LookupNames_common(struct pipes_struct *p, + struct lsa_LookupNames3 *r) { NTSTATUS status; struct lsa_info *handle; @@ -1333,11 +1329,6 @@ NTSTATUS _lsa_LookupNames3(struct pipes_struct *p, int flags = 0; bool check_policy = true; - if (p->transport != NCACN_NP && p->transport != NCALRPC) { - p->fault_state = DCERPC_FAULT_ACCESS_DENIED; - return NT_STATUS_ACCESS_DENIED; - } - switch (p->opnum) { case NDR_LSA_LOOKUPNAMES4: check_policy = false; @@ -1411,6 +1402,21 @@ done: return status; } +/*************************************************************************** + _lsa_LookupNames3 + ***************************************************************************/ + +NTSTATUS _lsa_LookupNames3(struct pipes_struct *p, + struct lsa_LookupNames3 *r) +{ + if (p->transport != NCACN_NP && p->transport != NCALRPC) { + p->fault_state = DCERPC_FAULT_ACCESS_DENIED; + return NT_STATUS_ACCESS_DENIED; + } + + return _lsa_LookupNames_common(p, r); +} + /*************************************************************************** _lsa_LookupNames4 ***************************************************************************/ @@ -1420,6 +1426,11 @@ NTSTATUS _lsa_LookupNames4(struct pipes_struct *p, { struct lsa_LookupNames3 q; + if (p->transport != NCACN_IP_TCP) { + p->fault_state = DCERPC_FAULT_ACCESS_DENIED; + return NT_STATUS_ACCESS_DENIED; + } + /* No policy handle on this call. Restrict to crypto connections. */ if (p->auth.auth_type != DCERPC_AUTH_TYPE_SCHANNEL) { DEBUG(0,("_lsa_lookup_names4: client %s not using schannel for netlogon\n", @@ -1440,7 +1451,7 @@ NTSTATUS _lsa_LookupNames4(struct pipes_struct *p, q.out.sids = r->out.sids; q.out.count = r->out.count; - return _lsa_LookupNames3(p, &q); + return _lsa_LookupNames_common(p, &q); } /***************************************************************************