v1-0003-pg_locale.c-Clean-up-srclen-1.patch
text/x-patch
Filename: v1-0003-pg_locale.c-Clean-up-srclen-1.patch
Type: text/x-patch
Part: 2
Message:
A few pg_locale.c fixes
Patch
Format: format-patch
Series: patch v1-0003
Subject: pg_locale.c: Clean up srclen == -1.
| File | + | − |
|---|---|---|
| src/backend/utils/adt/pg_locale_icu.c | 1 | 0 |
| src/backend/utils/adt/pg_locale_libc.c | 1 | 0 |
From ec6a98973bfca4fd6be8538ec45119c286140082 Mon Sep 17 00:00:00 2001
From: Jeff Davis <jeff@j-davis.com>
Date: Tue, 27 Jan 2026 14:30:19 -0800
Subject: [PATCH v1 3/3] pg_locale.c: Clean up srclen == -1.
No callers currently specify -1, but the API should handle it
correctly to mean a NUL-termianted string.
---
src/backend/utils/adt/pg_locale_icu.c | 1 +
src/backend/utils/adt/pg_locale_libc.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/backend/utils/adt/pg_locale_icu.c b/src/backend/utils/adt/pg_locale_icu.c
index 352b4c3885f..4659a50cbb8 100644
--- a/src/backend/utils/adt/pg_locale_icu.c
+++ b/src/backend/utils/adt/pg_locale_icu.c
@@ -703,6 +703,7 @@ downcase_ident_icu(char *dst, size_t dstsize, const char *src,
libc_lower = lt && (pg_database_encoding_max_length() == 1);
+ srclen = (srclen >= 0) ? srclen : strlen(src);
for (i = 0; i < srclen && i < dstsize; i++)
{
unsigned char ch = (unsigned char) src[i];
diff --git a/src/backend/utils/adt/pg_locale_libc.c b/src/backend/utils/adt/pg_locale_libc.c
index 78f6ea161a0..5feec161a43 100644
--- a/src/backend/utils/adt/pg_locale_libc.c
+++ b/src/backend/utils/adt/pg_locale_libc.c
@@ -329,6 +329,7 @@ downcase_ident_libc_sb(char *dst, size_t dstsize, const char *src,
locale_t loc = locale->lt;
int i;
+ srclen = (srclen >= 0) ? srclen : strlen(src);
for (i = 0; i < srclen && i < dstsize; i++)
{
unsigned char ch = (unsigned char) src[i];
--
2.43.0