1
0
This commit is contained in:
Scott E. Graves
2017-04-05 12:54:22 -05:00
parent c5efa58b0d
commit 871d22cb69

View File

@@ -635,12 +635,13 @@ private:
NTSTATUS ret = STATUS_SUCCESS;
auto siaFileTree = GetFileTree();
auto siaFile = siaFileTree ? siaFileTree->GetFile(openFileInfo->SiaPath) : nullptr;
auto siaFile = siaFileTree && openFileInfo ? siaFileTree->GetFile(openFileInfo->SiaPath) : nullptr;
SString cachFileLocation = openFileInfo ? openFileInfo->CacheFilePath : FilePath(GetCacheLocation(), fileName);
HANDLE tempHandle = openFileInfo->FileHandle;
HANDLE tempHandle = openFileInfo ? openFileInfo->FileHandle : nullptr;
if (!siaFile && (!tempHandle || (tempHandle == INVALID_HANDLE_VALUE)))
{
tempHandle = ::CreateFile(&openFileInfo->CacheFilePath[0], GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, 0, nullptr);
tempHandle = ::CreateFile(&cachFileLocation[0], GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, 0, nullptr);
if (tempHandle == INVALID_HANDLE_VALUE)
{
ret = DokanNtStatusFromWin32(::GetLastError());
@@ -653,7 +654,7 @@ private:
if (ret == STATUS_SUCCESS)
{
if (openFileInfo->Dummy)
if (openFileInfo && openFileInfo->Dummy)
{
LARGE_INTEGER li = { 0 };
li.QuadPart = siaFile->GetFileSize();
@@ -668,12 +669,12 @@ private:
// in this case, FindFirstFile can't get directory information
if (wcscmp(fileName, L"\\") == 0)
{
handleFileInfo->dwFileAttributes = ::GetFileAttributes(&openFileInfo->CacheFilePath[0]);
handleFileInfo->dwFileAttributes = ::GetFileAttributes(&cachFileLocation[0]);
}
else
{
WIN32_FIND_DATA find = { 0 };
HANDLE findHandle = ::FindFirstFile(&openFileInfo->CacheFilePath[0], &find);
HANDLE findHandle = ::FindFirstFile(&cachFileLocation[0], &find);
if (findHandle == INVALID_HANDLE_VALUE)
{
DWORD error = ::GetLastError();