aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/pg_locale_libc.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2025-03-28 07:13:43 +0100
committerPeter Eisentraut <peter@eisentraut.org>2025-03-28 07:13:43 +0100
commit890fc826c91f153ae8c084d3a008f91798495b13 (patch)
tree04a22ef76d8421bc08ede090e7e41547866c54e9 /src/backend/utils/adt/pg_locale_libc.c
parent474d7a1fd858d5ee138cf4504dcd93a9a3123a7d (diff)
downloadpostgresql-890fc826c91f153ae8c084d3a008f91798495b13.tar.gz
postgresql-890fc826c91f153ae8c084d3a008f91798495b13.zip
Use thread-safe strftime_l() instead of strftime().
This removes some setlocale() calls and a lot of commentary about how dangerous that is. strftime_l() is from POSIX 2008, and on Windows we use _wcsftime_l(). While here, adjust error message for strftime_l() failure: it does not in practice set errno (even though POSIX says it could), so no %m. Author: Thomas Munro <thomas.munro@gmail.com> Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi> Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Discussion: https://postgr.es/m/CA%2BhUKGJqVe0%2BPv9dvC9dSums_PXxGo9SWcxYAMBguWJUGbWz-A%40mail.gmail.com
Diffstat (limited to 'src/backend/utils/adt/pg_locale_libc.c')
-rw-r--r--src/backend/utils/adt/pg_locale_libc.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/backend/utils/adt/pg_locale_libc.c b/src/backend/utils/adt/pg_locale_libc.c
index 8f9a8637897..199857e22db 100644
--- a/src/backend/utils/adt/pg_locale_libc.c
+++ b/src/backend/utils/adt/pg_locale_libc.c
@@ -59,7 +59,6 @@ static size_t strnxfrm_libc(char *dest, size_t destsize,
extern char *get_collation_actual_version_libc(const char *collcollate);
static locale_t make_libc_collator(const char *collate,
const char *ctype);
-static void report_newlocale_failure(const char *localename);
#ifdef WIN32
static int strncoll_libc_win32_utf8(const char *arg1, ssize_t len1,
@@ -801,7 +800,7 @@ strncoll_libc_win32_utf8(const char *arg1, ssize_t len1, const char *arg2,
#endif /* WIN32 */
/* simple subroutine for reporting errors from newlocale() */
-static void
+void
report_newlocale_failure(const char *localename)
{
int save_errno;