summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/ntvfs/cifs/vfs_cifs.c3
-rw-r--r--source4/ntvfs/ipc/vfs_ipc.c2
-rw-r--r--source4/ntvfs/nbench/vfs_nbench.c2
-rw-r--r--source4/ntvfs/simple/vfs_simple.c4
-rw-r--r--source4/ntvfs/unixuid/vfs_unixuid.c3
5 files changed, 8 insertions, 6 deletions
diff --git a/source4/ntvfs/cifs/vfs_cifs.c b/source4/ntvfs/cifs/vfs_cifs.c
index 412af07aa2..138c9d566f 100644
--- a/source4/ntvfs/cifs/vfs_cifs.c
+++ b/source4/ntvfs/cifs/vfs_cifs.c
@@ -93,7 +93,7 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs,
machine_account = lp_parm_bool(req->tcon->service, "cifs", "use_machine_account", False);
- private = talloc(req->tcon, struct cvfs_private);
+ private = talloc(ntvfs, struct cvfs_private);
if (!private) {
return NT_STATUS_NO_MEMORY;
}
@@ -178,6 +178,7 @@ static NTSTATUS cvfs_disconnect(struct ntvfs_module_context *ntvfs,
struct cvfs_private *private = ntvfs->private_data;
talloc_free(private);
+ ntvfs->private_data = NULL;
return NT_STATUS_OK;
}
diff --git a/source4/ntvfs/ipc/vfs_ipc.c b/source4/ntvfs/ipc/vfs_ipc.c
index 7eb9250eb2..dd7994c1fb 100644
--- a/source4/ntvfs/ipc/vfs_ipc.c
+++ b/source4/ntvfs/ipc/vfs_ipc.c
@@ -87,7 +87,7 @@ static NTSTATUS ipc_connect(struct ntvfs_module_context *ntvfs,
NT_STATUS_HAVE_NO_MEMORY(tcon->dev_type);
/* prepare the private state for this connection */
- private = talloc(tcon, struct ipc_private);
+ private = talloc(ntvfs, struct ipc_private);
NT_STATUS_HAVE_NO_MEMORY(private);
ntvfs->private_data = private;
diff --git a/source4/ntvfs/nbench/vfs_nbench.c b/source4/ntvfs/nbench/vfs_nbench.c
index 3c95621694..e88adbafcc 100644
--- a/source4/ntvfs/nbench/vfs_nbench.c
+++ b/source4/ntvfs/nbench/vfs_nbench.c
@@ -99,7 +99,7 @@ static NTSTATUS nbench_connect(struct ntvfs_module_context *ntvfs,
NTSTATUS status;
char *logname = NULL;
- nprivates = talloc(req->tcon, struct nbench_private);
+ nprivates = talloc(ntvfs, struct nbench_private);
if (!nprivates) {
return NT_STATUS_NO_MEMORY;
}
diff --git a/source4/ntvfs/simple/vfs_simple.c b/source4/ntvfs/simple/vfs_simple.c
index 1198cafbe9..ad06a95041 100644
--- a/source4/ntvfs/simple/vfs_simple.c
+++ b/source4/ntvfs/simple/vfs_simple.c
@@ -54,10 +54,10 @@ static NTSTATUS svfs_connect(struct ntvfs_module_context *ntvfs,
struct smbsrv_tcon *tcon = req->tcon;
struct svfs_private *private;
- private = talloc(tcon, struct svfs_private);
+ private = talloc(ntvfs, struct svfs_private);
private->next_search_handle = 0;
- private->connectpath = talloc_strdup(tcon, lp_pathname(tcon->service));
+ private->connectpath = talloc_strdup(private, lp_pathname(tcon->service));
private->open_files = NULL;
private->search = NULL;
diff --git a/source4/ntvfs/unixuid/vfs_unixuid.c b/source4/ntvfs/unixuid/vfs_unixuid.c
index 886ace819e..df627bd2d1 100644
--- a/source4/ntvfs/unixuid/vfs_unixuid.c
+++ b/source4/ntvfs/unixuid/vfs_unixuid.c
@@ -207,7 +207,7 @@ static NTSTATUS unixuid_connect(struct ntvfs_module_context *ntvfs,
struct unixuid_private *private;
NTSTATUS status;
- private = talloc(req->tcon, struct unixuid_private);
+ private = talloc(ntvfs, struct unixuid_private);
if (!private) {
return NT_STATUS_NO_MEMORY;
}
@@ -239,6 +239,7 @@ static NTSTATUS unixuid_disconnect(struct ntvfs_module_context *ntvfs,
NTSTATUS status;
talloc_free(private);
+ ntvfs->private_data = NULL;
status = ntvfs_next_disconnect(ntvfs, tcon);