postgres.git / summary / log / commit / refs

commit    ca938ec213d954aaa9eba60bbbfbfa924fac0d7a
Author:   Jeff Davis <jdavis@postgresql.org>
Date:     Tue Apr 14 19:06:02 2026 +0000
First released in: 16.14, 17.10, 18.4

    Check for unterminated strings when calling uloc_getLanguage().
    
    Missed by commit 1671f990dd66.
    
    Author: Andreas Karlsson <andreas@proxel.se>
    Discussion: https://postgr.es/m/118ca69e-47eb-42e1-83e9-72ccf40dd6fd@proxel.se
    Backpatch-through: 16


src/bin/initdb/initdb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 62bbd08d9f6..f1a6db1a532 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -2380,7 +2380,7 @@ icu_validate_locale(const char *loc_str) /* validate that we can extract the language */ status = U_ZERO_ERROR; uloc_getLanguage(loc_str, lang, ULOC_LANG_CAPACITY, &status); - if (U_FAILURE(status)) + if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) { pg_fatal("could not get language from locale \"%s\": %s", loc_str, u_errorName(status)); @@ -2400,7 +2400,7 @@ icu_validate_locale(const char *loc_str) status = U_ZERO_ERROR; uloc_getLanguage(otherloc, otherlang, ULOC_LANG_CAPACITY, &status); - if (U_FAILURE(status)) + if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) continue; if (strcmp(lang, otherlang) == 0) [parent: 42473d90098d]