Skip to content

Commit b248dfa

Browse files
committed
Platform: prefers system API to retreive user name
1 parent 357aa77 commit b248dfa

File tree

2 files changed

+26
-30
lines changed

2 files changed

+26
-30
lines changed

src/common/impl/FFPlatform_unix.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -177,17 +177,16 @@ static void getDataDirs(FFPlatform* platform)
177177

178178
static void getUserName(FFPlatform* platform, const struct passwd* pwd)
179179
{
180-
const char* user = getenv("USER");
181-
if(!ffStrSet(user) && pwd)
182-
user = pwd->pw_name;
183-
184-
ffStrbufAppendS(&platform->userName, user);
185-
186180
if (pwd)
187181
{
188-
ffStrbufAppendS(&platform->fullUserName, pwd->pw_gecos);
182+
ffStrbufSetS(&platform->userName, pwd->pw_name);
183+
ffStrbufSetS(&platform->fullUserName, pwd->pw_gecos);
189184
ffStrbufTrimSpace(&platform->fullUserName);
190185
}
186+
else
187+
{
188+
ffStrbufSetS(&platform->userName, getenv("USER"));
189+
}
191190
}
192191

193192
static void getHostName(FFPlatform* platform, const struct utsname* uts)

src/common/impl/FFPlatform_windows.c

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -138,40 +138,37 @@ static void getDataDirs(FFPlatform* platform)
138138

139139
static void getUserName(FFPlatform* platform)
140140
{
141-
const char* userName = getenv("USERNAME");
142-
if (ffStrSet(userName))
143-
ffStrbufSetS(&platform->userName, userName);
144-
else
145-
{
146-
wchar_t buffer[256];
147-
DWORD len = ARRAY_SIZE(buffer);
148-
if(GetUserNameW(buffer, &len))
149-
ffStrbufSetWS(&platform->userName, buffer);
150-
}
151-
152141
wchar_t buffer[256];
153142
DWORD size = ARRAY_SIZE(buffer);
154143
if (GetUserNameExW(NameDisplay, buffer, &size))
155144
ffStrbufSetWS(&platform->fullUserName, buffer);
156145

157-
size = 0;
158-
DWORD refDomainSize = 0;
159-
SID_NAME_USE sidNameUse = SidTypeUnknown;
160-
LookupAccountNameA(NULL, userName, NULL, &size, NULL, &refDomainSize, &sidNameUse);
161-
if (size > 0)
146+
size = ARRAY_SIZE(buffer);
147+
if (GetUserNameW(buffer, &size)) // GetUserNameExW(10002)?
162148
{
163-
FF_AUTO_FREE PSID sid = (PSID) malloc(size);
164-
FF_AUTO_FREE char* refDomain = (char*) malloc(refDomainSize);
165-
if (LookupAccountNameA(NULL, userName, sid, &size, refDomain, &refDomainSize, &sidNameUse))
149+
ffStrbufSetWS(&platform->userName, buffer);
150+
151+
size = 0;
152+
DWORD refDomainSize = 0;
153+
SID_NAME_USE sidNameUse = SidTypeUnknown;
154+
LookupAccountNameW(NULL, buffer, NULL, &size, NULL, &refDomainSize, &sidNameUse);
155+
if (size > 0)
166156
{
167-
LPWSTR sidString;
168-
if (ConvertSidToStringSidW(sid, &sidString))
157+
FF_AUTO_FREE PSID sid = (PSID) malloc(size);
158+
FF_AUTO_FREE LPWSTR refDomain = (LPWSTR) malloc(refDomainSize);
159+
if (LookupAccountNameW(NULL, buffer, sid, &size, refDomain, &refDomainSize, &sidNameUse))
169160
{
170-
ffStrbufSetWS(&platform->sid, sidString);
171-
LocalFree(sidString);
161+
LPWSTR sidString;
162+
if (ConvertSidToStringSidW(sid, &sidString))
163+
{
164+
ffStrbufSetWS(&platform->sid, sidString);
165+
LocalFree(sidString);
166+
}
172167
}
173168
}
174169
}
170+
else
171+
ffStrbufSetS(&platform->userName, getenv("USERNAME"));
175172
}
176173

177174
static void getHostName(FFPlatform* platform)

0 commit comments

Comments
 (0)