From 71d5809188e416aeb3e9c67214eae32b4225c2d7 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 25 May 2018 13:58:04 +0200 Subject: [PATCH] smbd: remove xconn->client->last_session_id based set_current_user_info() caching Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme --- source3/librpc/idl/smbXsrv.idl | 1 - source3/smbd/process.c | 8 ++------ source3/smbd/smb2_server.c | 9 +++------ 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/source3/librpc/idl/smbXsrv.idl b/source3/librpc/idl/smbXsrv.idl index d3f8d30d1e3..26758113af4 100644 --- a/source3/librpc/idl/smbXsrv.idl +++ b/source3/librpc/idl/smbXsrv.idl @@ -123,7 +123,6 @@ interface smbXsrv * this session_table is used for SMB1 and SMB2, */ [ignore] struct smbXsrv_session_table *session_table; - [ignore] hyper last_session_id; /* * this tcon_table is only used for SMB1. */ diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 1c54ca49146..29249ea9a75 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -1571,13 +1571,9 @@ static connection_struct *switch_message(uint8_t type, struct smb_request *req) } } - if (session_tag != xconn->client->last_session_id) { - struct user_struct *vuser = NULL; + if (session != NULL) { + struct user_struct *vuser = session->compat; - xconn->client->last_session_id = session_tag; - if (session) { - vuser = session->compat; - } if (vuser) { set_current_user_info( vuser->session_info->unix_info->sanitized_username, diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index 177e5ffc2f2..a82161879c1 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -1964,12 +1964,9 @@ static NTSTATUS smbd_smb2_request_check_session(struct smbd_smb2_request *req) return NT_STATUS_INVALID_HANDLE; } - if (in_session_id != req->xconn->client->last_session_id) { - req->xconn->client->last_session_id = in_session_id; - set_current_user_info(session_info->unix_info->sanitized_username, - session_info->unix_info->unix_name, - session_info->info->domain_name); - } + set_current_user_info(session_info->unix_info->sanitized_username, + session_info->unix_info->unix_name, + session_info->info->domain_name); return NT_STATUS_OK; } -- 2.11.4.GIT