]> granicus.if.org Git - postgresql/commitdiff
Avoid palloc before CurrentMemoryContext is set up on win32
authorMagnus Hagander <magnus@hagander.net>
Fri, 1 Apr 2011 17:58:36 +0000 (19:58 +0200)
committerMagnus Hagander <magnus@hagander.net>
Fri, 1 Apr 2011 18:00:34 +0000 (20:00 +0200)
Instead, write the unconverted output - it will be in the wrong
encoding, but at least we don't crash.

Rushabh Lathia

src/backend/utils/error/elog.c

index feb0bd51fc9f643475bc1aab31bde7674d6448eb..71aed1e0f1dea480c87e52aa0554c1b74713f62f 100644 (file)
@@ -1658,10 +1658,14 @@ write_console(const char *line, int len)
        /*
         * WriteConsoleW() will fail of stdout is redirected, so just fall through
         * to writing unconverted to the logfile in this case.
+        *
+        * Since we palloc the structure required for conversion, also fall through
+        * to writing unconverted if we have not yet set up CurrentMemoryContext.
         */
        if (GetDatabaseEncoding() != GetPlatformEncoding() &&
                !in_error_recursion_trouble() &&
-               !redirection_done)
+               !redirection_done &&
+               CurrentMemoryContext != NULL)
        {
                WCHAR      *utf16;
                int                     utf16len;