From 3606dfa9212ece3f4d76104bd89c72b5834e4722 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Mon, 25 May 2020 14:01:23 +0200 Subject: [PATCH] Replaced getlogin with getlogin_r (cherry picked from commit 36478d3d0b3d7fa378a875f60170a08e94747226) --- channels/rdpdr/client/rdpdr_main.c | 5 ++++- client/X11/xf_client.c | 4 ++-- winpr/libwinpr/sspicli/sspicli.c | 9 +++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/channels/rdpdr/client/rdpdr_main.c b/channels/rdpdr/client/rdpdr_main.c index 7f6dc94..738594e 100644 --- a/channels/rdpdr/client/rdpdr_main.c +++ b/channels/rdpdr/client/rdpdr_main.c @@ -598,7 +598,10 @@ static BOOL isAutomountLocation(const char* path) size_t x; char buffer[MAX_PATH]; uid_t uid = getuid(); - const char* uname = getlogin(); + const char uname[MAX_PATH] = { 0 }; + + if (getlogin_r(uname, sizeof(uname)) != 0) + return FALSE; if (!path) return FALSE; diff --git a/client/X11/xf_client.c b/client/X11/xf_client.c index 301820e..189cb17 100644 --- a/client/X11/xf_client.c +++ b/client/X11/xf_client.c @@ -1181,9 +1181,9 @@ static BOOL xf_pre_connect(freerdp* instance) if (!settings->Username && !settings->CredentialsFromStdin && !settings->SmartcardLogon) { - char* login_name = getlogin(); + char login_name[MAX_PATH] = { 0 }; - if (login_name) + if (getlogin_r(login_name, sizeof(login_name)) == 0) { settings->Username = _strdup(login_name); diff --git a/winpr/libwinpr/sspicli/sspicli.c b/winpr/libwinpr/sspicli/sspicli.c index e88b53d..220f1e1 100644 --- a/winpr/libwinpr/sspicli/sspicli.c +++ b/winpr/libwinpr/sspicli/sspicli.c @@ -201,18 +201,19 @@ BOOL LogonUserExW(LPCWSTR lpszUsername, LPCWSTR lpszDomain, LPCWSTR lpszPassword BOOL GetUserNameExA(EXTENDED_NAME_FORMAT NameFormat, LPSTR lpNameBuffer, PULONG nSize) { size_t length; - char* login; + char login[MAX_PATH]; switch (NameFormat) { case NameSamCompatible: - login = getlogin(); + if (getlogin_r(login, sizeof(login)) != 0) + return FALSE; length = strlen(login); if (*nSize >= length) { CopyMemory(lpNameBuffer, login, length + 1); - return 1; + return TRUE; } else { @@ -235,7 +236,7 @@ BOOL GetUserNameExA(EXTENDED_NAME_FORMAT NameFormat, LPSTR lpNameBuffer, PULONG break; } - return 0; + return FALSE; } BOOL GetUserNameExW(EXTENDED_NAME_FORMAT NameFormat, LPWSTR lpNameBuffer, PULONG nSize) -- 2.7.4