summaryrefslogtreecommitdiff
path: root/source3/smbd/password.c
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2020-01-06 08:20:14 +0100
committerJeremy Allison <jra@samba.org>2020-01-13 19:41:36 +0000
commitc3d22018679c6aa83c4a5ae3e480532a3f5eccca (patch)
tree6440a8b8c1913eb94d6733d26ea69e36aa3543c7 /source3/smbd/password.c
parentdd9735b1da73b6c27feda32230e3fc843746fd2b (diff)
downloadsamba-c3d22018679c6aa83c4a5ae3e480532a3f5eccca.tar.gz
smbd: use get_valid_smbXsrv_session() in invalidate_vuid()
Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/smbd/password.c')
-rw-r--r--source3/smbd/password.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source3/smbd/password.c b/source3/smbd/password.c
index 41829e5793a..eb648731a83 100644
--- a/source3/smbd/password.c
+++ b/source3/smbd/password.c
@@ -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);