Fixes
This commit is contained in:
@@ -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();
|
||||
|
Reference in New Issue
Block a user