diff options
author | bubulle <bubulle@alioth.debian.org> | 2009-03-13 21:27:21 +0000 |
---|---|---|
committer | bubulle <bubulle@alioth.debian.org> | 2009-03-13 21:27:21 +0000 |
commit | 60b302fa20e00a1f5645783f95efaa7d8f0ee34e (patch) | |
tree | dda0835f9a209c5a487570b8c08d6c2e1224e26f /source/smbd/reply.c | |
parent | 7a15735eaa209f8dba887ffa180eb770389694de (diff) | |
download | samba-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.c | 12 |
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) { |