diff --git a/src/backend/utils/adt/pg_locale_builtin.c b/src/backend/utils/adt/pg_locale_builtin.c index f51768830cd..df5612b5a2d 100644 --- a/src/backend/utils/adt/pg_locale_builtin.c +++ b/src/backend/utils/adt/pg_locale_builtin.c @@ -91,7 +91,7 @@ strtitle_builtin(char *dest, size_t destsize, const char *src, ssize_t srclen, { struct WordBoundaryState wbstate = { .str = src, - .len = srclen, + .len = (srclen < 0) ? strlen(src) : srclen, .offset = 0, .posix = !locale->info.builtin.casemap_full, .init = false, diff --git a/src/common/unicode/case_test.c b/src/common/unicode/case_test.c index fdfb62e8552..6dfc4d130ea 100644 --- a/src/common/unicode/case_test.c +++ b/src/common/unicode/case_test.c @@ -303,7 +303,7 @@ tfunc_title(char *dst, size_t dstsize, const char *src, { struct WordBoundaryState wbstate = { .str = src, - .len = srclen, + .len = (srclen < 0) ? strlen(src) : srclen, .offset = 0, .init = false, .prev_alnum = false,