diff options
author | Magnus Hagander | 2009-12-27 16:01:39 +0000 |
---|---|---|
committer | Magnus Hagander | 2009-12-27 16:01:39 +0000 |
commit | 8c940a30ae7ed41298c81012f9542ada1e26eb72 (patch) | |
tree | 2bde237e76efb75381e5e1997afc0b1f07924033 /src/port/win32env.c | |
parent | e5b457c2ac0f5b843f53bd5719a620e7fcc4961d (diff) |
If the MSVCRT module is not found in the current binary, proceed to update
system and local environments anyway, instead of aborting. (This will
happen in a MSVC build with no or very few external libraries linked in)
Diffstat (limited to 'src/port/win32env.c')
-rw-r--r-- | src/port/win32env.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/port/win32env.c b/src/port/win32env.c index 9a32387337e..ac6250a5ac6 100644 --- a/src/port/win32env.c +++ b/src/port/win32env.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/port/win32env.c,v 1.3 2009/06/11 14:49:15 momjian Exp $ + * $PostgreSQL: pgsql/src/port/win32env.c,v 1.4 2009/12/27 16:01:39 mha Exp $ * *------------------------------------------------------------------------- */ @@ -40,15 +40,20 @@ pgwin32_putenv(const char *envval) if (putenvFunc == NULL) { hmodule = GetModuleHandle("msvcrt"); - if (hmodule == NULL) - return 1; - putenvFunc = (PUTENVPROC) GetProcAddress(hmodule, "_putenv"); - if (putenvFunc == NULL) - return 1; + if (hmodule != NULL) + { + /* + * If the module is found, attempt to find the function. If not, that just + * means we're not linked with msvcrt, so fall through and make our other + * modifications anyway. + * Ignore any errors and update whatever we can, since callers don't + * check the return value anyway. + */ + putenvFunc = (PUTENVPROC) GetProcAddress(hmodule, "_putenv"); + if (putenvFunc != NULL) + putenvFunc(envval); + } } - ret = putenvFunc(envval); - if (ret != 0) - return ret; #endif /* _MSC_VER >= 1300 */ |