From f1453b79a582d50e66fe68744abac64f384f91b1 Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Sat, 14 Aug 2021 10:34:10 +0100 Subject: win32: code shrink There doesn't seem to be any need to call OpenThreadToken() in file_owner(): OpenProcessToken() should suffice. Also, tidy up gethomedir() without any change in functionality. Saves 56 bytes. --- win32/mingw.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/win32/mingw.c b/win32/mingw.c index 74f738927..387220bef 100644 --- a/win32/mingw.c +++ b/win32/mingw.c @@ -486,8 +486,7 @@ static uid_t file_owner(HANDLE fh) DWORD ret = 0; initialised = 1; - if (OpenThreadToken(GetCurrentThread(), TOKEN_QUERY, TRUE, &token) || - OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token)) { + if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token)) { GetTokenInformation(token, TokenUser, NULL, 0, &ret); if (ret <= 0 || (user=malloc(ret)) == NULL || !GetTokenInformation(token, TokenUser, user, ret, &ret)) { @@ -988,21 +987,22 @@ int mingw_rename(const char *pold, const char *pnew) static char *gethomedir(void) { static char *buf = NULL; - DWORD len = PATH_MAX; - HANDLE h; DECLARE_PROC_ADDR(BOOL, GetUserProfileDirectoryA, HANDLE, LPSTR, LPDWORD); - if (buf) - return buf; - - buf = xzalloc(PATH_MAX); - if ( !OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &h) ) - return buf; + if (!buf) { + DWORD len = PATH_MAX; + HANDLE h; - if (INIT_PROC_ADDR(userenv.dll, GetUserProfileDirectoryA)) - GetUserProfileDirectoryA(h, buf, &len); - CloseHandle(h); - return bs_to_slash(buf); + buf = xzalloc(len); + if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &h)) { + if (INIT_PROC_ADDR(userenv.dll, GetUserProfileDirectoryA)) { + GetUserProfileDirectoryA(h, buf, &len); + bs_to_slash(buf); + } + CloseHandle(h); + } + } + return buf; } #define NAME_LEN 100 -- cgit v1.2.3-55-g6feb