Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wCRW6-001zRj-28 for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Apr 2026 00:20:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wCRW4-0092Gs-2X for pgsql-hackers@arkaria.postgresql.org; Tue, 14 Apr 2026 00:20:33 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wCRW4-0092G3-1H for pgsql-hackers@lists.postgresql.org; Tue, 14 Apr 2026 00:20:33 +0000 Received: from smtp.outgoing.loopia.se ([93.188.3.37]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wCRW3-00000000w6c-0Tai for pgsql-hackers@postgresql.org; Tue, 14 Apr 2026 00:20:32 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id CF6F85B1E70 for ; Tue, 14 Apr 2026 02:20:29 +0200 (CEST) Received: from s899.loopia.se (unknown [172.22.191.5]) by s807.loopia.se (Postfix) with ESMTP id B6B115B2496; Tue, 14 Apr 2026 02:20:29 +0200 (CEST) Received: from localhost (unknown [172.22.191.5]) by s899.loopia.se (Postfix) with ESMTP id B4B872C8BA3B; Tue, 14 Apr 2026 02:20:29 +0200 (CEST) X-Virus-Scanned: amavis at amavis.loopia.se X-Spam-Flag: NO X-Spam-Score: -1.2 X-Spam-Level: X-Spam-Status: No, score=-1.2 tagged_above=-999 required=6.2 tests=[ALL_TRUSTED=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1] autolearn=disabled Authentication-Results: s474.loopia.se (amavis); dkim=pass (2048-bit key) header.d=proxel.se Received: from s981.loopia.se ([172.22.191.5]) by localhost (s474.loopia.se [172.22.190.14]) (amavis, port 10024) with LMTP id dFhXXClsDiil; Tue, 14 Apr 2026 02:20:29 +0200 (CEST) X-Loopia-Auth: user X-Loopia-User: andreas@proxel.se X-Loopia-Originating-IP: 185.212.218.218 Received: from [172.16.38.83] (unknown [185.212.218.218]) (Authenticated sender: andreas@proxel.se) by s981.loopia.se (Postfix) with ESMTPSA id BEE5422B169F; Tue, 14 Apr 2026 02:20:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxel.se; s=loopiadkim1707418970; t=1776126029; bh=sJEIKsKY5HsPe+N95Wo6Q6b+WyReFC+TwWWJGNXBo4U=; h=Date:Subject:To:References:From:In-Reply-To; b=ZF4m4ENZ9AfEQchMCKnLoq9cM6xLfdMjkzGeYjXUE8a3ZtjSVB+XfttlNZde9r7bb A3UW0kD0D0QrToNV/JsbGzgwIL8fnPRuz77uYsWrz25F5q1xayJBuSKEhc/iceaL+f E1OcWYlQ0h+wEba7kH2uNoXEYBe9wWecMYXUgd6aPa5NkgJV5tZ/2gub7c5F6EpPDd kMeZaw5fyGWuOiQ4zdbJwqAPejh9kgQTZXQVecavEztcqVXsavJJkUn9wrPM47Khdq bXe1KxT51F84QTyhqeyDl+mO5Rn5Y0DCeHMGOtiGHqQlN2n9LjPhAIg7hYkQ/gIkUG yGBXfAVLYQomQ== Content-Type: multipart/mixed; boundary="------------ZLH2J4GYaYzdNrKLyH0LlsLy" Message-ID: <118ca69e-47eb-42e1-83e9-72ccf40dd6fd@proxel.se> Date: Tue, 14 Apr 2026 02:20:25 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Speed up ICU case conversion by using ucasemap_utf8To*() To: Jeff Davis , Alexander Lakhin , zengman , pgsql-hackers References: <167986ff-afcf-4542-94c6-61ee8474e138@proxel.se> <72c7c2b5848da44caddfe0f20f6c7ebc7c0c6e60.camel@j-davis.com> <4cfde442-25dd-495f-8d76-a23502ce17b8@proxel.se> <744b9998-4463-4be5-b60e-a960eeb43202@proxel.se> <5a010b27-8ed9-4739-86fe-1562b07ba564@proxel.se> <96d80a47-f17f-42fa-82b1-2908efbd6541@gmail.com> <84006e443ef2dcfcbff8dcb3814c0c402b8ff7fd.camel@j-davis.com> Content-Language: en-US From: Andreas Karlsson In-Reply-To: <84006e443ef2dcfcbff8dcb3814c0c402b8ff7fd.camel@j-davis.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------ZLH2J4GYaYzdNrKLyH0LlsLy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/13/26 20:40, Jeff Davis wrote: > Thank you both! Thanks! > Committed with minor revisions: > > * also check the status code, just to be sure If we do that shouldn't we also do the same in the other callsites in initdb.c uloc_getLanguage()? Maybe something like the attached. Also I wonder if maybe other ICU functions have the same risk. Andreas --------------ZLH2J4GYaYzdNrKLyH0LlsLy Content-Type: text/x-patch; charset=UTF-8; name="v1-0001-Always-check-for-untermianted-strings-when-callin.patch" Content-Disposition: attachment; filename*0="v1-0001-Always-check-for-untermianted-strings-when-callin.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4NjcwM2NhZTYyN2YyZDFhMTJmZWNiM2E2YWI3ZmJjMGYwNTExMzMwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzLmthcmxz c29uQHBlcmNvbmEuY29tPgpEYXRlOiBUdWUsIDE0IEFwciAyMDI2IDAyOjEyOjE1ICswMjAw ClN1YmplY3Q6IFtQQVRDSCB2MV0gQWx3YXlzIGNoZWNrIGZvciB1bnRlcm1pYW50ZWQgc3Ry aW5ncyB3aGVuIGNhbGxpbmcKIHVsb2NfZ2V0TGFuZ3VhZ2UoKQoKLS0tCiBzcmMvYmluL2lu aXRkYi9pbml0ZGIuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL2luaXRkYi9pbml0ZGIu YyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmluZGV4IDUwOWYxMTE0ZWY2Li4yMWYyNTkx NWFiMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jp bi9pbml0ZGIvaW5pdGRiLmMKQEAgLTI0MDMsNyArMjQwMyw3IEBAIGljdV92YWxpZGF0ZV9s b2NhbGUoY29uc3QgY2hhciAqbG9jX3N0cikKIAkvKiB2YWxpZGF0ZSB0aGF0IHdlIGNhbiBl eHRyYWN0IHRoZSBsYW5ndWFnZSAqLwogCXN0YXR1cyA9IFVfWkVST19FUlJPUjsKIAl1bG9j X2dldExhbmd1YWdlKGxvY19zdHIsIGxhbmcsIFVMT0NfTEFOR19DQVBBQ0lUWSwgJnN0YXR1 cyk7Ci0JaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorCWlmIChVX0ZBSUxVUkUoc3RhdHVzKSB8 fCBzdGF0dXMgPT0gVV9TVFJJTkdfTk9UX1RFUk1JTkFURURfV0FSTklORykKIAl7CiAJCXBn X2ZhdGFsKCJjb3VsZCBub3QgZ2V0IGxhbmd1YWdlIGZyb20gbG9jYWxlIFwiJXNcIjogJXMi LAogCQkJCSBsb2Nfc3RyLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKQEAgLTI0MjMsNyArMjQy Myw3IEBAIGljdV92YWxpZGF0ZV9sb2NhbGUoY29uc3QgY2hhciAqbG9jX3N0cikKIAogCQlz dGF0dXMgPSBVX1pFUk9fRVJST1I7CiAJCXVsb2NfZ2V0TGFuZ3VhZ2Uob3RoZXJsb2MsIG90 aGVybGFuZywgVUxPQ19MQU5HX0NBUEFDSVRZLCAmc3RhdHVzKTsKLQkJaWYgKFVfRkFJTFVS RShzdGF0dXMpKQorCQlpZiAoVV9GQUlMVVJFKHN0YXR1cykgfHwgc3RhdHVzID09PSBVX1NU UklOR19OT1RfVEVSTUlOQVRFRF9XQVJOSU5HKQogCQkJY29udGludWU7CiAKIAkJaWYgKHN0 cmNtcChsYW5nLCBvdGhlcmxhbmcpID09IDApCi0tIAoyLjQzLjAKCg== --------------ZLH2J4GYaYzdNrKLyH0LlsLy--