summaryrefslogtreecommitdiff
path: root/source3/smbd/sesssetup.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/sesssetup.c')
-rw-r--r--source3/smbd/sesssetup.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
index 5331127cb5..7361db0205 100644
--- a/source3/smbd/sesssetup.c
+++ b/source3/smbd/sesssetup.c
@@ -41,10 +41,8 @@ static int reply_spnego_kerberos(connection_struct *conn,
char *realm, *client, *p;
const struct passwd *pw;
char *user;
- gid_t gid;
- uid_t uid;
- char *full_name;
int sess_vuid;
+ auth_serversupplied_info *server_info = NULL;
realm = lp_realm();
@@ -101,11 +99,15 @@ static int reply_spnego_kerberos(connection_struct *conn,
DEBUG(1,("Username %s is invalid on this system\n",user));
return ERROR_NT(NT_STATUS_LOGON_FAILURE);
}
- gid = pw->pw_gid;
- uid = pw->pw_uid;
- full_name = pw->pw_gecos;
+
+ if (!make_server_info_pw(&server_info,pw)) {
+ DEBUG(1,("make_server_info_from_pw failed!\n"));
+ return ERROR_NT(NT_STATUS_NO_MEMORY);
+ }
- sess_vuid = register_vuid(uid,gid,user,user,realm,False, full_name);
+ sess_vuid = register_vuid(server_info, user, False);
+
+ free_server_info(&server_info);
if (sess_vuid == -1) {
return ERROR_NT(NT_STATUS_LOGON_FAILURE);