diff --git a/src/common/restricted_token.c b/src/common/restricted_token.c index 74ba7192a1..15ba86d1a8 100644 --- a/src/common/restricted_token.c +++ b/src/common/restricted_token.c @@ -76,6 +76,7 @@ CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo) if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &origToken)) { pg_log_error("could not open process token: error code %lu", GetLastError()); + FreeLibrary(Advapi32Handle); return 0; } @@ -89,6 +90,8 @@ CreateRestrictedProcess(char *cmd, PROCESS_INFORMATION *processInfo) 0, &dropSids[1].Sid)) { pg_log_error("could not allocate SIDs: error code %lu", GetLastError()); + CloseHandle(origToken); + FreeLibrary(Advapi32Handle); return 0; } @@ -187,6 +190,7 @@ get_restricted_token(void) } exit(x); } + free(cmdline); } #endif }