Users (Windows): fix crashing caused by uninitialized strings

This commit is contained in:
李通洲
2023-10-03 17:01:57 +08:00
parent 1985552636
commit be860064c5
+3 -5
View File
@@ -28,17 +28,17 @@ const char* ffDetectUsers(FFlist* users)
FFUserResult* user = (FFUserResult*) ffListAdd(users);
ffStrbufInitWS(&user->name, session->pUserName);
ffStrbufInitWS(&user->hostName, session->pHostName);
ffStrbufInitS(&user->clientIp, "0.0.0.0");
user->loginTime = 0;
DWORD bytes = 0;
PWTS_CLIENT_ADDRESS address = NULL;
if (WTSQuerySessionInformationW(WTS_CURRENT_SERVER_HANDLE, session->SessionId, WTSClientAddress, (LPWSTR *) &address, &bytes))
{
if (address->AddressFamily == 2 /*AF_INET*/)
ffStrbufInitF(&user->clientIp, "%u.%u.%u.%u", address->Address[2], address->Address[3], address->Address[4], address->Address[5]);
ffStrbufSetF(&user->clientIp, "%u.%u.%u.%u", address->Address[2], address->Address[3], address->Address[4], address->Address[5]);
WTSFreeMemory(address);
}
else
ffStrbufInitS(&user->clientIp, "0.0.0.0");
bytes = 0;
PWTSINFOW wtsInfo = NULL;
@@ -47,8 +47,6 @@ const char* ffDetectUsers(FFlist* users)
user->loginTime = to_ms(*(uint64_t*) &wtsInfo->LogonTime);
WTSFreeMemory(wtsInfo);
}
else
user->loginTime = 0;
}
WTSFreeMemoryExW(WTSTypeSessionInfoLevel1, sessionInfo, 1);