summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2017-04-12 14:12:32 +1200
committerAndrew Bartlett <abartlet@samba.org>2017-05-30 08:06:06 +0200
commit2368f57b4d7bc26ba08273020d7281fab6f817c8 (patch)
tree87428f7c5eb6d9d77efbb162bb07c047e34b0fea /source3
parenta6a19e4308d4e81418eb5810cf492407dc91344b (diff)
downloadsamba-2368f57b4d7bc26ba08273020d7281fab6f817c8.tar.gz
winbindd: Do not run SAM auth stack in winbind SamLogon
pdbtest.s4winbind no longer is applicable without a live NETLOGON connection. Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source3')
-rw-r--r--source3/winbindd/winbindd_dual_srv.c4
-rw-r--r--source3/winbindd/winbindd_pam.c4
-rw-r--r--source3/winbindd/winbindd_proto.h1
3 files changed, 7 insertions, 2 deletions
diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c
index 02b1adb2117..8007c7d38d1 100644
--- a/source3/winbindd/winbindd_dual_srv.c
+++ b/source3/winbindd/winbindd_dual_srv.c
@@ -890,7 +890,9 @@ NTSTATUS _winbind_SamLogon(struct pipes_struct *p,
r->in.logon.network->identity_info.workstation.string,
r->in.logon.network->challenge,
lm_response, nt_response,
- &r->out.authoritative, &flags,
+ &r->out.authoritative,
+ true,
+ &flags,
&r->out.validation.sam3);
return status;
}
diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c
index c792cfe704f..4d3a7eeb1ba 100644
--- a/source3/winbindd/winbindd_pam.c
+++ b/source3/winbindd/winbindd_pam.c
@@ -2003,6 +2003,7 @@ NTSTATUS winbind_dual_SamLogon(struct winbindd_domain *domain,
DATA_BLOB lm_response,
DATA_BLOB nt_response,
uint8_t *authoritative,
+ bool skip_sam,
uint32_t *flags,
struct netr_SamInfo3 **info3)
{
@@ -2017,7 +2018,7 @@ NTSTATUS winbind_dual_SamLogon(struct winbindd_domain *domain,
* name_domain can also be lp_realm()
* we need to check against domain->name.
*/
- if (strequal(domain->name, get_global_sam_name())) {
+ if (!skip_sam && strequal(domain->name, get_global_sam_name())) {
DATA_BLOB chal_blob = data_blob_const(
chal, 8);
@@ -2172,6 +2173,7 @@ enum winbindd_result winbindd_dual_pam_auth_crap(struct winbindd_domain *domain,
lm_resp,
nt_resp,
&authoritative,
+ false,
&flags,
&info3);
if (!NT_STATUS_IS_OK(result)) {
diff --git a/source3/winbindd/winbindd_proto.h b/source3/winbindd/winbindd_proto.h
index 57b363a7bd8..6d6fafcb72f 100644
--- a/source3/winbindd/winbindd_proto.h
+++ b/source3/winbindd/winbindd_proto.h
@@ -454,6 +454,7 @@ NTSTATUS winbind_dual_SamLogon(struct winbindd_domain *domain,
DATA_BLOB lm_response,
DATA_BLOB nt_response,
uint8_t *authoritative,
+ bool skip_sam,
uint32_t *flags,
struct netr_SamInfo3 **info3);