From 858eb53dc510d1b27c4f91045fa932a3ef546754 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 28 Apr 2000 21:09:26 +0000 Subject: Moved deletion of vfs handle into smbd/conn.c as it was being done too soon in smbd/service.c (file operations were being done after the handle was closed). It looks cleaner in smbd/conn.c as it is part of the closing of a conn struct anyway. Jeremy. --- source/smbd/conn.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'source/smbd/conn.c') diff --git a/source/smbd/conn.c b/source/smbd/conn.c index 83289b21848..1dc4ac9e7d9 100644 --- a/source/smbd/conn.c +++ b/source/smbd/conn.c @@ -164,6 +164,21 @@ free a conn structure ****************************************************************************/ void conn_free(connection_struct *conn) { + /* Close dlopen() handle */ + + if (conn->vfs_conn->dl_handle != NULL) { + dlclose(conn->vfs_conn->dl_handle); /* should we check return val? */ + } + + /* Free vfs_connection_struct */ + + if (conn->vfs_conn != NULL) { + if (conn->vfs_conn->groups != NULL) { + free(conn->vfs_conn->groups); + } + free(conn->vfs_conn); + } + DLIST_REMOVE(Connections, conn); if (conn->ngroups && conn->groups) { -- cgit