From 0c1e2e493d4056b2ed0f62be41ef17d1ed49c11a Mon Sep 17 00:00:00 2001
From: Tatsuo Ishii <ishii@postgresql.org>
Date: Thu, 13 May 1999 10:28:26 +0000
Subject: [PATCH] set client_encoding to <nothing> crashes backend.

---
 src/backend/utils/mb/common.c   |  6 +++++-
 src/backend/utils/mb/variable.c | 11 ++++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/backend/utils/mb/common.c b/src/backend/utils/mb/common.c
index b6bcae3b156..6d90c734454 100644
--- a/src/backend/utils/mb/common.c
+++ b/src/backend/utils/mb/common.c
@@ -2,7 +2,7 @@
  * This file contains some public functions
  * usable for both the backend and the frontend.
  * Tatsuo Ishii
- * $Id: common.c,v 1.3 1998/10/06 03:02:21 momjian Exp $ */
+ * $Id: common.c,v 1.4 1999/05/13 10:28:25 ishii Exp $ */
 
 #include <stdlib.h>
 
@@ -28,6 +28,10 @@ pg_char_to_encoding(const char *s)
 {
 	pg_encoding_conv_tbl *p = pg_conv_tbl;
 
+        if (!s) {
+		return (-1);
+	}
+
 	for (; p->encoding >= 0; p++)
 	{
 		if (!strcasecmp(s, p->name))
diff --git a/src/backend/utils/mb/variable.c b/src/backend/utils/mb/variable.c
index 37b95ccf120..0b2ffacd644 100644
--- a/src/backend/utils/mb/variable.c
+++ b/src/backend/utils/mb/variable.c
@@ -2,7 +2,7 @@
  * This file contains some public functions
  * related to show/set/reset variable commands.
  * Tatsuo Ishii
- * $Id: variable.c,v 1.2 1998/09/01 04:33:24 momjian Exp $
+ * $Id: variable.c,v 1.3 1999/05/13 10:28:26 ishii Exp $
  */
 
 #include "mb/pg_wchar.h"
@@ -13,8 +13,13 @@ parse_client_encoding(const char *value)
 	int			encoding;
 
 	encoding = pg_valid_client_encoding(value);
-	if (encoding < 0)
-		elog(ERROR, "Client encoding %s is not supported", value);
+	if (encoding < 0) {
+	        if (value) {
+			elog(ERROR, "Client encoding %s is not supported", value);
+		} else {
+			elog(ERROR, "No client encoding is specified");
+		}
+	}
 	else
 	{
 		if (pg_set_client_encoding(encoding))
-- 
GitLab