From 77e5ec7124d4530fead31794cfee62905d7254d2 Mon Sep 17 00:00:00 2001 From: Jeff Davis Date: Thu, 13 Aug 2026 20:57:20 -0700 Subject: [PATCH vPG18 1/5] Fixup 5f003855e7 for srclen < 0. No actual problem because no callers used that aspect of the API. Only commit to 18, because that part of the API was removed in commit 6d22c67c3b. Discussion: https://postgr.es/m/v36ssaygf7grb3qzfsjhtdzi7kqd45ds56nyuf7gi5qjml4qbb@ezmfqzmhlrs2 --- src/backend/utils/adt/pg_locale.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/backend/utils/adt/pg_locale.c b/src/backend/utils/adt/pg_locale.c index 2f8d5fea8f2..9c721efb52f 100644 --- a/src/backend/utils/adt/pg_locale.c +++ b/src/backend/utils/adt/pg_locale.c @@ -1328,6 +1328,8 @@ size_t pg_strlower(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale) { + srclen = (srclen < 0) ? strlen(src) : srclen; + if (locale->ctype_is_c) return strlower_c(dst, dstsize, src, srclen); else if (locale->provider == COLLPROVIDER_BUILTIN) @@ -1349,6 +1351,8 @@ size_t pg_strtitle(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale) { + srclen = (srclen < 0) ? strlen(src) : srclen; + if (locale->ctype_is_c) return strtitle_c(dst, dstsize, src, srclen); else if (locale->provider == COLLPROVIDER_BUILTIN) @@ -1370,6 +1374,8 @@ size_t pg_strupper(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale) { + srclen = (srclen < 0) ? strlen(src) : srclen; + if (locale->ctype_is_c) return strupper_c(dst, dstsize, src, srclen); else if (locale->provider == COLLPROVIDER_BUILTIN) @@ -1391,6 +1397,8 @@ size_t pg_strfold(char *dst, size_t dstsize, const char *src, ssize_t srclen, pg_locale_t locale) { + srclen = (srclen < 0) ? strlen(src) : srclen; + /* in the C locale, casefolding is the same as lowercasing */ if (locale->ctype_is_c) return strlower_c(dst, dstsize, src, srclen); -- 2.43.0