summaryrefslogtreecommitdiff
path: root/source/smbd/reply.c
diff options
context:
space:
mode:
authorbubulle <bubulle@alioth.debian.org>2009-03-13 21:27:21 +0000
committerbubulle <bubulle@alioth.debian.org>2009-03-13 21:27:21 +0000
commit60b302fa20e00a1f5645783f95efaa7d8f0ee34e (patch)
treedda0835f9a209c5a487570b8c08d6c2e1224e26f /source/smbd/reply.c
parent7a15735eaa209f8dba887ffa180eb770389694de (diff)
downloadsamba-60b302fa20e00a1f5645783f95efaa7d8f0ee34e.tar.gz
Load samba-3.3.2 into branches/samba/upstream.upstream/3.3.2
git-svn-id: svn://svn.debian.org/svn/pkg-samba/branches/samba/upstream@2649 fc4039ab-9d04-0410-8cac-899223bdd6b0
Diffstat (limited to 'source/smbd/reply.c')
-rw-r--r--source/smbd/reply.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/source/smbd/reply.c b/source/smbd/reply.c
index 8e757da706..499b67fb9f 100644
--- a/source/smbd/reply.c
+++ b/source/smbd/reply.c
@@ -2263,6 +2263,16 @@ static NTSTATUS can_rename(connection_struct *conn, files_struct *fsp,
}
if (S_ISDIR(pst->st_mode)) {
+ if (fsp->posix_open) {
+ return NT_STATUS_OK;
+ }
+
+ /* If no pathnames are open below this
+ directory, allow the rename. */
+
+ if (file_find_subpath(fsp)) {
+ return NT_STATUS_ACCESS_DENIED;
+ }
return NT_STATUS_OK;
}
@@ -2779,9 +2789,9 @@ void send_file_readbraw(connection_struct *conn,
return;
}
-#endif
normal_readbraw:
+#endif
outbuf = TALLOC_ARRAY(NULL, char, nread+4);
if (!outbuf) {