summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/auth/auth_util.c11
-rw-r--r--source3/include/auth.h1
2 files changed, 11 insertions, 1 deletions
diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c
index 1f9bc7b6d7..74d8873f5c 100644
--- a/source3/auth/auth_util.c
+++ b/source3/auth/auth_util.c
@@ -765,16 +765,24 @@ static NTSTATUS make_new_server_info_system(TALLOC_CTX *mem_ctx,
struct auth_serversupplied_info **server_info)
{
struct passwd *pwd;
+ NTSTATUS status;
pwd = getpwuid_alloc(mem_ctx, sec_initial_uid());
if (pwd == NULL) {
return NT_STATUS_NO_MEMORY;
}
- return make_serverinfo_from_username(mem_ctx,
+ status = make_serverinfo_from_username(mem_ctx,
pwd->pw_name,
false,
server_info);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ (*server_info)->system = true;
+
+ return NT_STATUS_OK;
}
/****************************************************************************
@@ -829,6 +837,7 @@ struct auth_serversupplied_info *copy_serverinfo(TALLOC_CTX *mem_ctx,
}
dst->guest = src->guest;
+ dst->system = src->system;
dst->utok.uid = src->utok.uid;
dst->utok.gid = src->utok.gid;
dst->utok.ngroups = src->utok.ngroups;
diff --git a/source3/include/auth.h b/source3/include/auth.h
index ed422c24a0..69a91d29aa 100644
--- a/source3/include/auth.h
+++ b/source3/include/auth.h
@@ -42,6 +42,7 @@ struct auth_usersupplied_info {
struct auth_serversupplied_info {
bool guest;
+ bool system;
struct dom_sid *sids; /* These SIDs are preliminary between
check_ntlm_password and the token creation. */