[*] Found some missing close handles in some error paths

This commit is contained in:
Reece Wilson 2023-08-18 16:23:28 +01:00
parent 4240966512
commit 61df62213f

View File

@ -109,31 +109,33 @@ namespace Aurora::Process
auto offset = static_cast<AuUInt32>(reinterpret_cast<const AuUInt8 *>(nt) - reinterpret_cast<const AuUInt8 *>(mod)); auto offset = static_cast<AuUInt32>(reinterpret_cast<const AuUInt8 *>(nt) - reinterpret_cast<const AuUInt8 *>(mod));
using Value_t = AuRemovePointer_t<decltype(nt)>; using Value_t = AuRemovePointer_t<decltype(nt)>;
Value_t value {}; Value_t value {};
DWORD dwBytesRead {};
auto handle = CreateFileW(Locale::ConvertFromUTF8(path).c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL); auto hHandle = CreateFileW(Locale::ConvertFromUTF8(path).c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);
if (handle == INVALID_HANDLE_VALUE) if (hHandle == INVALID_HANDLE_VALUE)
{ {
return 0; return 0;
} }
DWORD bytesRead {}; if (!SetFilePointer(hHandle, offset, NULL, 0))
if (!SetFilePointer(handle, offset, NULL, 0))
{ {
AuWin32CloseHandle(hHandle);
return {}; return {};
} }
if (!ReadFile(handle, &value, sizeof(Value_t), &bytesRead, NULL)) if (!ReadFile(hHandle, &value, sizeof(Value_t), &dwBytesRead, NULL))
{ {
AuWin32CloseHandle(hHandle);
return {}; return {};
} }
if (bytesRead != sizeof(Value_t)) if (dwBytesRead != sizeof(Value_t))
{ {
AuWin32CloseHandle(hHandle);
return {}; return {};
} }
CloseHandle(handle); AuWin32CloseHandle(hHandle);
return value; return value;
} }