Corrected handling of SMB_COM_RENAME

This commit is contained in:
Tal Aloni 2017-02-18 19:22:34 +02:00
parent dc925568a1
commit 68a7552d6a

View file

@ -62,14 +62,12 @@ namespace SMBLibrary.Server.SMB1
object handle;
FileStatus fileStatus;
CreateOptions createOptions = 0;
if (searchAttributes == SMBFileAttributes.Normal)
// Windows 2000 SP4 clients will use this command to rename directories.
// Hidden, System and Directory attributes are inclusive.
if ((searchAttributes & SMBFileAttributes.Directory) == 0)
{
createOptions = CreateOptions.FILE_NON_DIRECTORY_FILE;
}
else if ((searchAttributes & SMBFileAttributes.Directory) > 0)
{
createOptions = CreateOptions.FILE_DIRECTORY_FILE;
}
NTStatus openStatus = fileStore.CreateFile(out handle, out fileStatus, oldName, DirectoryAccessMask.DELETE, 0, CreateDisposition.FILE_OPEN, createOptions, securityContext);
if (openStatus != NTStatus.STATUS_SUCCESS)
{