From 148ca9e05f67a0a4fb1d583f7bec53190dea91ab Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 12 Mar 2012 18:04:01 +0100 Subject: [PATCH] s3:smbd: call file_close_user() before removing tree connects in conn_close_all() This will help later if we have to handle a SMB2TreeDisconnect different compared to a SMB2SessionLogoff and a TCPDisconnect. metze Autobuild-User: Stefan Metzmacher Autobuild-Date: Thu Mar 15 21:56:09 CET 2012 on sn-devel-104 --- source3/smbd/conn_idle.c | 4 ++++ source3/smbd/smb2_sesssetup.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/source3/smbd/conn_idle.c b/source3/smbd/conn_idle.c index dc213ea6be3..f33bd8c89f7 100644 --- a/source3/smbd/conn_idle.c +++ b/source3/smbd/conn_idle.c @@ -88,12 +88,16 @@ bool conn_idle_all(struct smbd_server_connection *sconn, time_t t) bool conn_close_all(struct smbd_server_connection *sconn) { bool ret = false; + if (sconn->using_smb2) { /* SMB2 */ struct smbd_smb2_session *sess; + for (sess = sconn->smb2.sessions.list; sess; sess = sess->next) { struct smbd_smb2_tcon *tcon, *tc_next; + file_close_user(sconn, sess->vuid); + for (tcon = sess->tcons.list; tcon; tcon = tc_next) { tc_next = tcon->next; TALLOC_FREE(tcon); diff --git a/source3/smbd/smb2_sesssetup.c b/source3/smbd/smb2_sesssetup.c index 96e8d40cdde..9a750eea0d6 100644 --- a/source3/smbd/smb2_sesssetup.c +++ b/source3/smbd/smb2_sesssetup.c @@ -122,6 +122,8 @@ static int smbd_smb2_session_destructor(struct smbd_smb2_session *session) return 0; } + file_close_user(session->sconn, session->vuid); + /* first free all tcons */ while (session->tcons.list) { talloc_free(session->tcons.list); -- 2.11.4.GIT