From be860064c562109b584dc9fd6a86e015d7981073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 3 Oct 2023 17:01:57 +0800 Subject: [PATCH] Users (Windows): fix crashing caused by uninitialized strings --- src/detection/users/users_windows.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/detection/users/users_windows.c b/src/detection/users/users_windows.c index a891520b1..21e4353a1 100644 --- a/src/detection/users/users_windows.c +++ b/src/detection/users/users_windows.c @@ -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);