aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/port/win32env.c23
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 */