summaryrefslogtreecommitdiff
path: root/source3/auth/auth_samba4.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2017-03-17 11:16:36 +0100
committerStefan Metzmacher <metze@samba.org>2017-03-24 11:57:09 +0100
commit4af89d534d17744c54ea2408190a25c27cec18ea (patch)
treefca14fedf08c07cf607f2ed51f9c2a2c4c7b2499 /source3/auth/auth_samba4.c
parent65d5f845ed61641f42be614bb78391cba87e762a (diff)
downloadsamba-4af89d534d17744c54ea2408190a25c27cec18ea.tar.gz
auth4: let auth_check_password* return pauthoritative
BUG: https://bugzilla.samba.org/show_bug.cgi?id=2976 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source3/auth/auth_samba4.c')
-rw-r--r--source3/auth/auth_samba4.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/source3/auth/auth_samba4.c b/source3/auth/auth_samba4.c
index a0d6afd32d4..138c6cd4f09 100644
--- a/source3/auth/auth_samba4.c
+++ b/source3/auth/auth_samba4.c
@@ -118,6 +118,7 @@ static NTSTATUS check_samba4_security(const struct auth_context *auth_context,
NTSTATUS nt_status;
struct auth_user_info_dc *user_info_dc;
struct auth4_context *auth4_context;
+ uint8_t authoritative = 0;
nt_status = make_auth4_context_s4(auth_context, mem_ctx, &auth4_context);
if (!NT_STATUS_IS_OK(nt_status)) {
@@ -132,13 +133,19 @@ static NTSTATUS check_samba4_security(const struct auth_context *auth_context,
return nt_status;
}
- nt_status = auth_check_password(auth4_context, auth4_context, user_info, &user_info_dc);
+ nt_status = auth_check_password(auth4_context, auth4_context, user_info,
+ &user_info_dc, &authoritative);
if (!NT_STATUS_IS_OK(nt_status)) {
+ if (NT_STATUS_EQUAL(nt_status, NT_STATUS_NO_SUCH_USER) &&
+ authoritative == 0)
+ {
+ nt_status = NT_STATUS_NOT_IMPLEMENTED;
+ }
TALLOC_FREE(auth4_context);
TALLOC_FREE(frame);
return nt_status;
}
-
+
nt_status = auth_convert_user_info_dc_saminfo3(mem_ctx,
user_info_dc,
&info3);