This commit is contained in:
DavidXanatos 2021-09-12 13:16:18 +02:00
parent 52cf8908ef
commit 7613958ff0
1 changed files with 20 additions and 5 deletions

View File

@ -800,7 +800,7 @@ ULONG SbieIniServer::CacheConfig()
ULONG LastError = GetLastError();
attrs = 0;
if (LastError != ERROR_FILE_NOT_FOUND) {
SbieApi_LogEx(m_session_id, 2322, L"[11 / %d]", LastError);
SbieApi_LogEx(m_session_id, 2322, L"[21 / %d]", LastError);
goto finish;
}
}
@ -812,7 +812,7 @@ ULONG SbieIniServer::CacheConfig()
FILE_ATTRIBUTE_OFFLINE);
if (attrs & CONFLICTING_ATTRS) {
SbieApi_LogEx(m_session_id, 2322, L"[12 / %d]", GetLastError());
SbieApi_LogEx(m_session_id, 2322, L"[22 / %d]", GetLastError());
attrs = 0;
goto finish;
}
@ -829,7 +829,17 @@ ULONG SbieIniServer::CacheConfig()
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE) {
SbieApi_LogEx(m_session_id, 2322, L"[15 / %d]", GetLastError());
DWORD err = GetLastError();
if (err == ERROR_FILE_NOT_FOUND) {
m_pConfigIni = new SConfigIni;
m_pConfigIni->Encoding = 0;
m_pConfigIni->Sections.push_back(SIniSection{ L"GlobalSettings" });
status = STATUS_SUCCESS; // the file does not exist that's ok
}
else
SbieApi_LogEx(m_session_id, 2322, L"[23 / %d]", err);
goto finish;
}
@ -840,10 +850,15 @@ ULONG SbieIniServer::CacheConfig()
LARGE_INTEGER fileSize;
if (!GetFileSizeEx(hFile, &fileSize) || fileSize.QuadPart >= CONF_LINE_LEN * CONF_MAX_LINES) {
status = STATUS_INSUFFICIENT_RESOURCES;
SbieApi_LogEx(m_session_id, 2322, L"[15 / %d]", status);
SbieApi_LogEx(m_session_id, 2322, L"[24 / %d]", status);
goto finish;
}
if (fileSize.QuadPart == 0) {
status = STATUS_SUCCESS;
goto finish; // nothing to do
}
iniData = (WCHAR *)HeapAlloc(GetProcessHeap(), 0, (SIZE_T)(fileSize.QuadPart + 128));
if (!iniData) {
status = STATUS_INSUFFICIENT_RESOURCES;
@ -853,7 +868,7 @@ ULONG SbieIniServer::CacheConfig()
DWORD bytesRead;
if (!ReadFile(hFile, iniData, (DWORD)fileSize.QuadPart, &bytesRead, NULL) || bytesRead != (DWORD)fileSize.QuadPart) {
status = STATUS_NOT_READ_FROM_COPY;
SbieApi_LogEx(m_session_id, 2322, L"[15 / %d]", status);
SbieApi_LogEx(m_session_id, 2322, L"[25 / %d]", status);
goto finish;
}