diff options
author | Noah Misch | 2016-12-04 05:16:54 +0000 |
---|---|---|
committer | Noah Misch | 2016-12-04 05:16:54 +0000 |
commit | 54aa6ccfc51414b94a2363be6302efb0f911b692 (patch) | |
tree | 99df03d90c3f3ac4f2fcaaab96197a7d93fb38bb /src/port/win32env.c | |
parent | 202dbdbe41e1b1085a4d69c96bca9a52e634b196 (diff) |
Make pgwin32_putenv() probe every known CRT, regardless of compiler.
This extends to MinGW builds the provision for MSVC-built libraries to
see putenv() effects. Doing so repairs, for example, the handling of
the krb_server_keyfile parameter when linked with MSVC-built MIT
Kerberos. Like the previous commit, no back-patch.
Diffstat (limited to 'src/port/win32env.c')
-rw-r--r-- | src/port/win32env.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/port/win32env.c b/src/port/win32env.c index a491497152c..214e5bee1ee 100644 --- a/src/port/win32env.c +++ b/src/port/win32env.c @@ -21,7 +21,6 @@ pgwin32_putenv(const char *envval) { char *envcpy; char *cp; -#ifdef _MSC_VER typedef int (_cdecl * PUTENVPROC) (const char *); static const char *const modulenames[] = { "msvcrt", /* Visual Studio 6.0 / MinGW */ @@ -45,7 +44,6 @@ pgwin32_putenv(const char *envval) NULL }; int i; -#endif /* _MSC_VER */ /* * Update process environment, making this change visible to child @@ -88,7 +86,6 @@ pgwin32_putenv(const char *envval) * against. Addresses within these modules may become invalid the moment * we call FreeLibrary(), so don't cache them. */ -#ifdef _MSC_VER for (i = 0; modulenames[i]; i++) { HMODULE hmodule = NULL; @@ -104,9 +101,12 @@ pgwin32_putenv(const char *envval) FreeLibrary(hmodule); } } -#endif /* _MSC_VER */ - /* Finally, update our "own" cache */ + /* + * Finally, update our "own" cache. This is redundant with the loop + * above, except when PostgreSQL itself links to a CRT not listed above. + * Ideally, the loop does visit all possible CRTs, making this redundant. + */ return _putenv(envval); } |