summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/utils/error/elog.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index fcb5f180b23..6c72f23c5db 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -1910,11 +1910,16 @@ write_eventlog(int level, const char *line, int len)
* Convert message to UTF16 text and write it with ReportEventW, but
* fall-back into ReportEventA if conversion failed.
*
+ * Since we palloc the structure required for conversion, also fall
+ * through to writing unconverted if we have not yet set up
+ * CurrentMemoryContext.
+ *
* Also verify that we are not on our way into error recursion trouble due
* to error messages thrown deep inside pgwin32_toUTF16().
*/
if (GetDatabaseEncoding() != GetPlatformEncoding() &&
- !in_error_recursion_trouble())
+ !in_error_recursion_trouble() &&
+ CurrentMemoryContext != NULL)
{
utf16 = pgwin32_toUTF16(line, len, NULL);
if (utf16)