Skip to content
Snippets Groups Projects
Commit 8c940a30 authored by Magnus Hagander's avatar Magnus Hagander
Browse files

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)
parent e5b457c2
No related branches found
No related tags found
No related merge requests found
......@@ -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 */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment