smbd: remove xconn->client->last_session_id based set_current_user_info() caching
authorStefan Metzmacher <metze@samba.org>
Fri, 25 May 2018 11:58:04 +0000 (13:58 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 18 Jun 2018 06:59:16 +0000 (08:59 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/librpc/idl/smbXsrv.idl
source3/smbd/process.c
source3/smbd/smb2_server.c

index d3f8d30d1e30a7edd5212aed7d37e9c7f9d8f2f3..26758113af47db28656ea9a768a8806ceacda8d3 100644 (file)
@@ -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.
                 */
index 1c54ca491462987e72f44a9164a3cc9b2e4eaa85..29249ea9a7593256a346844239c9fef9bab442db 100644 (file)
@@ -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,
index 177e5ffc2f2fba98354ea40b997261184c22ba89..a82161879c1359a4b8377ad97939f524b2a13e24 100644 (file)
@@ -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;
 }