summaryrefslogtreecommitdiff
path: root/source3/smbd/nttrans.c
diff options
context:
space:
mode:
authorTim Prouty <tprouty@samba.org>2009-01-04 10:45:34 -0800
committerTim Prouty <tprouty@samba.org>2009-01-04 19:31:30 -0800
commit3e0e756104dc77059843bcef4a8d44981df28a18 (patch)
tree4f6bbbb00cb819ac25ae7b14996cfe1dead49736 /source3/smbd/nttrans.c
parent2ddaebb2e11ba13ff7428e45dbfdc90b1bf2d630 (diff)
downloadsamba-3e0e756104dc77059843bcef4a8d44981df28a18.tar.gz
samba-3e0e756104dc77059843bcef4a8d44981df28a18.tar.bz2
samba-3e0e756104dc77059843bcef4a8d44981df28a18.zip
s3: Allow renames of streams via NTRENAME and fix stream error codes on rename
The test_streams_rename2 test in RAW-STREAMS verifies these changes
Diffstat (limited to 'source3/smbd/nttrans.c')
-rw-r--r--source3/smbd/nttrans.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index 9bfc566410..a793e614af 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -1310,13 +1310,6 @@ void reply_ntrename(struct smb_request *req)
return;
}
- if( is_ntfs_stream_name(oldname)) {
- /* Can't rename a stream. */
- reply_nterror(req, NT_STATUS_ACCESS_DENIED);
- END_PROFILE(SMBntrename);
- return;
- }
-
if (ms_has_wild(oldname)) {
reply_nterror(req, NT_STATUS_OBJECT_PATH_SYNTAX_BAD);
END_PROFILE(SMBntrename);
@@ -1364,6 +1357,13 @@ void reply_ntrename(struct smb_request *req)
return;
}
+ /* The new name must begin with a ':' if the old name is a stream. */
+ if (is_ntfs_stream_name(oldname) && (newname[0] != ':')) {
+ reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ END_PROFILE(SMBntrename);
+ return;
+ }
+
DEBUG(3,("reply_ntrename : %s -> %s\n",oldname,newname));
switch(rename_type) {