s3:smbd: correctly invalidate vuids when SMB2 is used
authorStefan Metzmacher <metze@samba.org>
Tue, 11 Aug 2009 16:08:26 +0000 (18:08 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 12 Aug 2009 11:27:58 +0000 (13:27 +0200)
metze

source3/smbd/password.c
source3/smbd/smb2_sesssetup.c

index b1a749736d9756e919a4ea6860ae1f46b345a3ed..4c1cef45cc77b8f15c78359919c15b23df65da80 100644 (file)
@@ -128,6 +128,10 @@ void invalidate_vuid(struct smbd_server_connection *sconn, uint16 vuid)
 
 void invalidate_all_vuids(struct smbd_server_connection *sconn)
 {
+       if (sconn->allow_smb2) {
+               return;
+       }
+
        while (sconn->smb1.sessions.validated_users != NULL) {
                invalidate_vuid(sconn,
                                sconn->smb1.sessions.validated_users->vuid);
index eae26ed06c828f886469eec33b169720a98858ab..9b1dc8cdf88afa57a9d42626a2547bd81918fc8d 100644 (file)
@@ -131,6 +131,7 @@ static int smbd_smb2_session_destructor(struct smbd_smb2_session *session)
 
        idr_remove(session->sconn->smb2.sessions.idtree, session->vuid);
        DLIST_REMOVE(session->sconn->smb2.sessions.list, session);
+       invalidate_vuid(session->sconn, session->vuid);
 
        session->vuid = 0;
        session->status = NT_STATUS_USER_SESSION_DELETED;