*** pgsql/src/port/win32env.c 2009/01/21 10:30:02 1.1 --- pgsql/src/port/win32env.c 2009/02/12 12:53:34 1.2 *************** *** 10,16 **** * * * IDENTIFICATION ! * $PostgreSQL$ * *------------------------------------------------------------------------- */ --- 10,16 ---- * * * IDENTIFICATION ! * $PostgreSQL: pgsql/src/port/win32env.c,v 1.1 2009/01/21 10:30:02 mha Exp $ * *------------------------------------------------------------------------- */ *************** pgwin32_putenv(const char *envval) *** 64,75 **** return -1; *cp = '\0'; cp++; ! if (strlen(cp) == 0) ! cp = NULL; ! if (!SetEnvironmentVariable(envcpy, cp)) { ! free(envcpy); ! return -1; } free(envcpy); --- 64,81 ---- return -1; *cp = '\0'; cp++; ! if (strlen(cp)) { ! /* ! * Only call SetEnvironmentVariable() when we are adding a variable, ! * not when removing it. Calling it on both crashes on at least certain ! * versions of MingW. ! */ ! if (!SetEnvironmentVariable(envcpy, cp)) ! { ! free(envcpy); ! return -1; ! } } free(envcpy);