This commit is contained in:
Bill Zissimopoulos 2016-01-03 17:26:35 -08:00
parent 9d73f15b0f
commit 0da55d012c

View File

@ -99,26 +99,35 @@ static NTSTATUS FspFileSystemOpCreate_FileOpenIf(FSP_FILE_SYSTEM *FileSystem,
{
if (STATUS_OBJECT_NAME_NOT_FOUND != Result)
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
Create = TRUE;
}
if (!Create)
{
Result = FileSystem->Interface->FileOpen(FileSystem, Request, &FileNode);
{
if (STATUS_OBJECT_NAME_NOT_FOUND != Result)
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
Create = TRUE;
}
}
if (Create)
{
Result = FspAccessCheck(FileSystem, Request, FALSE,
(Request->Req.Create.CreateOptions & FILE_DIRECTORY_FILE) ?
FILE_ADD_SUBDIRECTORY : FILE_ADD_FILE,
&GrantedAccess);
if (!NT_SUCCESS(Result))
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
}
if (Create)
{
Result = FileSystem->Interface->FileCreate(FileSystem, Request, &FileNode);
memset(&FileNode->ShareAccess, 0, sizeof FileNode->ShareAccess);
}
else
Result = FileSystem->Interface->FileOpen(FileSystem, Request, &FileNode);
if (!NT_SUCCESS(Result))
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
memset(&FileNode->ShareAccess, 0, sizeof FileNode->ShareAccess);
}
Result = FspShareCheck(FileSystem, GrantedAccess, Request->Req.Create.ShareAccess, FileNode);
if (!NT_SUCCESS(Result))
{