]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: use get_valid_smbXsrv_session() in invalidate_vuid()
authorRalph Boehme <slow@samba.org>
Mon, 6 Jan 2020 07:20:14 +0000 (08:20 +0100)
committerJeremy Allison <jra@samba.org>
Mon, 13 Jan 2020 19:41:36 +0000 (19:41 +0000)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/password.c

index 41829e5793aca252f14dfa17beea6cfd194b33fe..eb648731a8324d05371cd58d5afa051b6dc0d9ce 100644 (file)
@@ -87,6 +87,8 @@ struct user_struct *get_valid_user_struct(struct smbd_server_connection *sconn,
 void invalidate_vuid(struct smbd_server_connection *sconn, uint64_t vuid)
 {
        struct user_struct *vuser = NULL;
+       struct smbXsrv_session *session = NULL;
+       NTSTATUS status;
 
        vuser = get_valid_user_struct_internal(sconn, vuid,
                        SERVER_ALLOCATED_REQUIRED_ANY);
@@ -94,7 +96,12 @@ void invalidate_vuid(struct smbd_server_connection *sconn, uint64_t vuid)
                return;
        }
 
-       session_yield(vuser->session);
+       status = get_valid_smbXsrv_session(sconn->client, vuid, &session);
+       if (!NT_STATUS_IS_OK(status)) {
+               return;
+       }
+
+       session_yield(session);
 
        DLIST_REMOVE(sconn->users, vuser);
        SMB_ASSERT(sconn->num_users > 0);