From 41e364ec67ec3a009574db9d20d1b85a654f95ae Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 30 Jan 2014 18:10:01 -0500
Subject: [PATCH] Fix potential coredump on bad locale value in pg_upgrade.

Thinko in error report (and a typo in the message text, too).  We're
failing anyway, but it would be good to print something useful first.
Noted while reviewing a patch to make pg_upgrade's locale code laxer.
---
 contrib/pg_upgrade/check.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/pg_upgrade/check.c b/contrib/pg_upgrade/check.c
index a706708f4d2..e395c7c7f62 100644
--- a/contrib/pg_upgrade/check.c
+++ b/contrib/pg_upgrade/check.c
@@ -990,6 +990,7 @@ get_canonical_locale_name(int category, const char *locale)
 	char	   *save;
 	char	   *res;
 
+	/* get the current setting, so we can restore it. */
 	save = setlocale(category, NULL);
 	if (!save)
 		pg_fatal("failed to get the current locale\n");
@@ -1001,7 +1002,7 @@ get_canonical_locale_name(int category, const char *locale)
 	res = setlocale(category, locale);
 
 	if (!res)
-		pg_fatal("failed to get system local name for \"%s\"\n", res);
+		pg_fatal("failed to get system locale name for \"%s\"\n", locale);
 
 	res = pg_strdup(res);
 
-- 
GitLab