From 1a9857369d2fae08fefef613cf6cbd3354092a4a Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 23 Jan 2018 17:57:37 +0100 Subject: [PATCH] winbindd: allow validation level 6 in winbind_SamLogon Bug: https://bugzilla.samba.org/show_bug.cgi?id=13260 Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme --- source3/winbindd/winbindd_dual_srv.c | 38 +++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c index 5c12414fd25..66b4ee82a25 100644 --- a/source3/winbindd/winbindd_dual_srv.c +++ b/source3/winbindd/winbindd_dual_srv.c @@ -891,7 +891,11 @@ NTSTATUS _winbind_SamLogon(struct pipes_struct *p, return NT_STATUS_REQUEST_NOT_ACCEPTED; } - if (r->in.validation_level != 3) { + switch (r->in.validation_level) { + case 3: + case 6: + break; + default: return NT_STATUS_REQUEST_NOT_ACCEPTED; } @@ -965,15 +969,31 @@ NTSTATUS _winbind_SamLogon(struct pipes_struct *p, if (!NT_STATUS_IS_OK(status)) { return status; } - status = map_validation_to_info3(p->mem_ctx, - validation_level, - validation, - &r->out.validation.sam3); - TALLOC_FREE(validation); - if (!NT_STATUS_IS_OK(status)) { - return status; + switch (r->in.validation_level) { + case 3: + status = map_validation_to_info3(p->mem_ctx, + validation_level, + validation, + &r->out.validation.sam3); + TALLOC_FREE(validation); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + return NT_STATUS_OK; + case 6: + status = map_validation_to_info6(p->mem_ctx, + validation_level, + validation, + &r->out.validation.sam6); + TALLOC_FREE(validation); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + return NT_STATUS_OK; } - return NT_STATUS_OK; + + smb_panic(__location__); + return NT_STATUS_INTERNAL_ERROR; } static WERROR _winbind_LogonControl_REDISCOVER(struct pipes_struct *p, -- 2.11.4.GIT