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 1vlBLr-008TdD-37 for pgsql-hackers@arkaria.postgresql.org; Wed, 28 Jan 2026 19:37:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vlBLr-003Gvr-0P for pgsql-hackers@arkaria.postgresql.org; Wed, 28 Jan 2026 19:37:19 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vlBLq-003Gvg-1s for pgsql-hackers@lists.postgresql.org; Wed, 28 Jan 2026 19:37:19 +0000 Received: from mail-dy1-x1332.google.com ([2607:f8b0:4864:20::1332]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vlBLn-002n4C-2g for pgsql-hackers@postgresql.org; Wed, 28 Jan 2026 19:37:18 +0000 Received: by mail-dy1-x1332.google.com with SMTP id 5a478bee46e88-2b73112ab62so275554eec.1 for ; Wed, 28 Jan 2026 11:37:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1769629035; x=1770233835; darn=postgresql.org; h=mime-version:user-agent:date:to:from:subject:message-id:from:to:cc :subject:date:message-id:reply-to; bh=KRummMw1PDyIm6ayMKyaODddHCFMhjlnnCo1+dtrKL4=; b=Tyo30aQaRtUJdR137hdzI7xeptVSLiUYXS+dx1BoWBauoOpv4bFYmhIess2aLchluz UnmyWVngpNXFGUHMKQmyWpAeYzYz9z666Vb8pSepXpMcPvfcgwNorXF8BKY1vvamSmk2 snIS3soWOAl9ZyFxmtnk30NBsLAT/Ctv4KBbe5ULXLeyf540zS7ZHFcNPffpPdP4iZRj /feoe3rtkjcNVDSVdBojn6Az6XfqdT3FvC6gJi0ESICPnmFv6wtEXP0xn2td9BqSvCHj iSGUFEHlNpQnCkbqJHnzIea8jO8MF0P4/sKcnNsTOlHTw1D2d9PeAQ0WgcXh2uJt9p8p 42Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769629035; x=1770233835; h=mime-version:user-agent:date:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KRummMw1PDyIm6ayMKyaODddHCFMhjlnnCo1+dtrKL4=; b=Jw/zGg0UsCeiGDNxR3k2X4RGjRzzsjoUs5Q4GV+OjWjZkZsHODnz7o6L1eqSC/jJ4+ 5bJKqIiq6ruQBzipSf/b8vjhVQ0ASFXdgPxO4mluxqRPSKmxWaNpg/LKjLPxgd4+uKI3 I6orT8obvywFxzHBnFHbJiFwqd9zVfBHvxq5qJHcreAvMBcMIyey3cIov/XRMyKIkNvY 7cYRylJ0RFzXrbI5L7DInb3E5xmyQJzn1TMlt+ic1p7k06eHxFeO4KBTxW5X0PVVq16/ bOgSclJLkdi3li2YQNPTKkfIwXUWn1yODyWFaAA5hpUw0vMC//BZ7O73Qow+Rd3VI9Lu 7TSQ== X-Gm-Message-State: AOJu0Yzu2l+kGJQMOU+ajOnuqVAf5q/TrTu6Gu2yp/N8WiGeocHZ8WJH KzZUEJ8ZvpcwrfAObvMWZC7gT6xDED3bB3xTV1jslQi18g5TP6mJsX6WSbS5/bVum6Oq3wOUUHH y7zw= X-Gm-Gg: AZuq6aKCerzftaQ2INo9DbQxFVDE3bBMdOeRjcRHfB+zOwZg7nMrswzknvEE7Fh3ln7 uVhiUbI4DDSOOg9ucmhLaAZkUSzP+iv/EI+Yt/atoQCOP+WyiMLXFnASA2GB0voMziyk4tVc9ru ueKZymjuoAujOScm77qZm0tchSMThTRIzPFJAmVxAhymUaifEVS1sy3tfrT+vvR2eQP/krZmcb5 8DVb1jE7j+AB/HkJBI7atmyld5JJyo7Fdvb/yDPtulAAvjBI03IsxSigrcpFapt8J2eRGjV+8Kd YjOybbz4Ef3tdO7MYtXWqFmFp2fmeSwUvvmSp3cWW6bIsHEz2RCw2PeNKVoMn3uQULagOcZJL16 NAOfVdzmEkJ9ECb3sxQ9MyPEzZhZMFHJ3/OyRU10ddkqFIOYJUVPtw4WuTxqMZpXVhajJY9DyvV sqlSeQULWw6fji6lGzNFfTi2mN/ml1ZAwVsfUcLfs= X-Received: by 2002:a05:7300:cc1b:b0:2b7:3281:6c64 with SMTP id 5a478bee46e88-2b78d91926emr3447552eec.14.1769629035115; Wed, 28 Jan 2026 11:37:15 -0800 (PST) Received: from jeff-laptop.lan (c-24-7-19-3.hsd1.ca.comcast.net. [24.7.19.3]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b7a1af8a7bsm3892286eec.34.2026.01.28.11.37.14 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Jan 2026 11:37:14 -0800 (PST) Message-ID: Subject: A few pg_locale.c fixes From: Jeff Davis To: pgsql-hackers@postgresql.org Date: Wed, 28 Jan 2026 11:37:13 -0800 Content-Type: multipart/mixed; boundary="=-W8WRkKC08a8g7TPZFKzv" User-Agent: Evolution 3.52.3-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-W8WRkKC08a8g7TPZFKzv Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Attached patches. Problems found with AI assistance. Patches by me. Regards, Jeff Davis --=-W8WRkKC08a8g7TPZFKzv Content-Disposition: attachment; filename="v1-0001-Fix-memory-leaks-in-pg_locale_libc.c.patch" Content-Type: text/x-patch; name="v1-0001-Fix-memory-leaks-in-pg_locale_libc.c.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmNGZkNzU1YmU1NDJhZGQ1MDBhYWJjMjNiNDI1NWI5ZWUzNjMxODczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDI3IEphbiAyMDI2IDEzOjM5OjU1IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MSAxLzNdIEZp eCBtZW1vcnkgbGVha3MgaW4gcGdfbG9jYWxlX2xpYmMuYy4KCi0tLQogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3BnX2xvY2FsZV9saWJjLmMgfCAzMCArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGVfbGliYy5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3BnX2xvY2FsZV9saWJjLmMKaW5kZXggMmY5NmU4ODk1OTUuLjc4ZjZlYTE2 MWEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlX2xpYmMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlX2xpYmMuYwpAQCAtNTI3LDExICs1 MjcsMTEgQEAgc3RybG93ZXJfbGliY19tYihjaGFyICpkZXN0LCBzaXplX3QgZGVzdHNpemUsIGNv bnN0IGNoYXIgKnNyYywgc3NpemVfdCBzcmNsZW4sCiAKIAlyZXN1bHRfc2l6ZSA9IHdjaGFyMmNo YXIocmVzdWx0LCB3b3Jrc3BhY2UsIG1heF9zaXplICsgMSwgbG9jKTsKIAotCWlmIChyZXN1bHRf c2l6ZSArIDEgPiBkZXN0c2l6ZSkKLQkJcmV0dXJuIHJlc3VsdF9zaXplOwotCi0JbWVtY3B5KGRl c3QsIHJlc3VsdCwgcmVzdWx0X3NpemUpOwotCWRlc3RbcmVzdWx0X3NpemVdID0gJ1wwJzsKKwlp ZiAoZGVzdHNpemUgPj0gcmVzdWx0X3NpemUgKyAxKQorCXsKKwkJbWVtY3B5KGRlc3QsIHJlc3Vs dCwgcmVzdWx0X3NpemUpOworCQlkZXN0W3Jlc3VsdF9zaXplXSA9ICdcMCc7CisJfQogCiAJcGZy ZWUod29ya3NwYWNlKTsKIAlwZnJlZShyZXN1bHQpOwpAQCAtNjM4LDExICs2MzgsMTEgQEAgc3Ry dGl0bGVfbGliY19tYihjaGFyICpkZXN0LCBzaXplX3QgZGVzdHNpemUsIGNvbnN0IGNoYXIgKnNy Yywgc3NpemVfdCBzcmNsZW4sCiAKIAlyZXN1bHRfc2l6ZSA9IHdjaGFyMmNoYXIocmVzdWx0LCB3 b3Jrc3BhY2UsIG1heF9zaXplICsgMSwgbG9jKTsKIAotCWlmIChyZXN1bHRfc2l6ZSArIDEgPiBk ZXN0c2l6ZSkKLQkJcmV0dXJuIHJlc3VsdF9zaXplOwotCi0JbWVtY3B5KGRlc3QsIHJlc3VsdCwg cmVzdWx0X3NpemUpOwotCWRlc3RbcmVzdWx0X3NpemVdID0gJ1wwJzsKKwlpZiAoZGVzdHNpemUg Pj0gcmVzdWx0X3NpemUgKyAxKQorCXsKKwkJbWVtY3B5KGRlc3QsIHJlc3VsdCwgcmVzdWx0X3Np emUpOworCQlkZXN0W3Jlc3VsdF9zaXplXSA9ICdcMCc7CisJfQogCiAJcGZyZWUod29ya3NwYWNl KTsKIAlwZnJlZShyZXN1bHQpOwpAQCAtNzI1LDExICs3MjUsMTEgQEAgc3RydXBwZXJfbGliY19t YihjaGFyICpkZXN0LCBzaXplX3QgZGVzdHNpemUsIGNvbnN0IGNoYXIgKnNyYywgc3NpemVfdCBz cmNsZW4sCiAKIAlyZXN1bHRfc2l6ZSA9IHdjaGFyMmNoYXIocmVzdWx0LCB3b3Jrc3BhY2UsIG1h eF9zaXplICsgMSwgbG9jKTsKIAotCWlmIChyZXN1bHRfc2l6ZSArIDEgPiBkZXN0c2l6ZSkKLQkJ cmV0dXJuIHJlc3VsdF9zaXplOwotCi0JbWVtY3B5KGRlc3QsIHJlc3VsdCwgcmVzdWx0X3NpemUp OwotCWRlc3RbcmVzdWx0X3NpemVdID0gJ1wwJzsKKwlpZiAoZGVzdHNpemUgPj0gcmVzdWx0X3Np emUgKyAxKQorCXsKKwkJbWVtY3B5KGRlc3QsIHJlc3VsdCwgcmVzdWx0X3NpemUpOworCQlkZXN0 W3Jlc3VsdF9zaXplXSA9ICdcMCc7CisJfQogCiAJcGZyZWUod29ya3NwYWNlKTsKIAlwZnJlZShy ZXN1bHQpOwotLSAKMi40My4wCgo= --=-W8WRkKC08a8g7TPZFKzv Content-Disposition: attachment; filename="v1-0002-Fix-memory-leaks-in-pg_locale_icu.c.patch" Content-Type: text/x-patch; name="v1-0002-Fix-memory-leaks-in-pg_locale_icu.c.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAxOTIyYTExODU3NmY5YmU3MzAxODQ0N2I2ZTU1MzFlNjU3MTQ4NGRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDI3IEphbiAyMDI2IDEzOjUwOjIyIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MSAyLzNdIEZp eCBtZW1vcnkgbGVha3MgaW4gcGdfbG9jYWxlX2ljdS5jLgoKLS0tCiBzcmMvYmFja2VuZC91dGls cy9hZHQvcGdfbG9jYWxlX2ljdS5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGVfaWN1 LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlX2ljdS5jCmluZGV4IDg4Zjg2YWIx OGEzLi4zNTJiNGMzODg1ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xv Y2FsZV9pY3UuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlX2ljdS5jCkBA IC01OTcsNiArNTk3LDggQEAgbWFrZV9pY3VfY29sbGF0b3IoY29uc3QgY2hhciAqaWN1bG9jc3Ry LCBjb25zdCBjaGFyICppY3VydWxlcykKIAkJCQkJCQlpY3Vsb2NzdHIsIGljdXJ1bGVzLCB1X2Vy cm9yTmFtZShzdGF0dXMpKSkpOwogCQl9CiAKKwkJcGZyZWUobXlfcnVsZXMpOworCQlwZnJlZShh bGxfcnVsZXMpOwogCQlyZXR1cm4gY29sbGF0b3JfYWxsX3J1bGVzOwogCX0KIH0KQEAgLTExMDYs NiArMTEwOCw5IEBAIHN0cm54ZnJtX3ByZWZpeF9pY3UoY2hhciAqZGVzdCwgc2l6ZV90IGRlc3Rz aXplLAogCQkJCShlcnJtc2coInNvcnQga2V5IGdlbmVyYXRpb24gZmFpbGVkOiAlcyIsCiAJCQkJ CQl1X2Vycm9yTmFtZShzdGF0dXMpKSkpOwogCisJaWYgKGJ1ZiAhPSBzYnVmKQorCQlwZnJlZShi dWYpOworCiAJcmV0dXJuIHJlc3VsdF9ic2l6ZTsKIH0KIAotLSAKMi40My4wCgo= --=-W8WRkKC08a8g7TPZFKzv Content-Disposition: attachment; filename="v1-0003-pg_locale.c-Clean-up-srclen-1.patch" Content-Type: text/x-patch; name="v1-0003-pg_locale.c-Clean-up-srclen-1.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlYzZhOTg5NzNiZmNhNGZkNmJlODUzOGVjNDUxMTljMjg2MTQwMDgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDI3IEphbiAyMDI2IDE0OjMwOjE5IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MSAzLzNdIHBn X2xvY2FsZS5jOiBDbGVhbiB1cCBzcmNsZW4gPT0gLTEuCgpObyBjYWxsZXJzIGN1cnJlbnRseSBz cGVjaWZ5IC0xLCBidXQgdGhlIEFQSSBzaG91bGQgaGFuZGxlIGl0CmNvcnJlY3RseSB0byBtZWFu IGEgTlVMLXRlcm1pYW50ZWQgc3RyaW5nLgotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19s b2NhbGVfaWN1LmMgIHwgMSArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlX2xpYmMu YyB8IDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlX2ljdS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BnX2xvY2FsZV9pY3UuYwppbmRleCAzNTJiNGMzODg1Zi4uNDY1OWE1MGNiYjggMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGVfaWN1LmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZV9pY3UuYwpAQCAtNzAzLDYgKzcwMyw3IEBAIGRvd25j YXNlX2lkZW50X2ljdShjaGFyICpkc3QsIHNpemVfdCBkc3RzaXplLCBjb25zdCBjaGFyICpzcmMs CiAKIAlsaWJjX2xvd2VyID0gbHQgJiYgKHBnX2RhdGFiYXNlX2VuY29kaW5nX21heF9sZW5ndGgo KSA9PSAxKTsKIAorCXNyY2xlbiA9IChzcmNsZW4gPj0gMCkgPyBzcmNsZW4gOiBzdHJsZW4oc3Jj KTsKIAlmb3IgKGkgPSAwOyBpIDwgc3JjbGVuICYmIGkgPCBkc3RzaXplOyBpKyspCiAJewogCQl1 bnNpZ25lZCBjaGFyIGNoID0gKHVuc2lnbmVkIGNoYXIpIHNyY1tpXTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGVfbGliYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BnX2xvY2FsZV9saWJjLmMKaW5kZXggNzhmNmVhMTYxYTAuLjVmZWVjMTYxYTQzIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlX2xpYmMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlX2xpYmMuYwpAQCAtMzI5LDYgKzMyOSw3IEBAIGRv d25jYXNlX2lkZW50X2xpYmNfc2IoY2hhciAqZHN0LCBzaXplX3QgZHN0c2l6ZSwgY29uc3QgY2hh ciAqc3JjLAogCWxvY2FsZV90CWxvYyA9IGxvY2FsZS0+bHQ7CiAJaW50CQkJaTsKIAorCXNyY2xl biA9IChzcmNsZW4gPj0gMCkgPyBzcmNsZW4gOiBzdHJsZW4oc3JjKTsKIAlmb3IgKGkgPSAwOyBp IDwgc3JjbGVuICYmIGkgPCBkc3RzaXplOyBpKyspCiAJewogCQl1bnNpZ25lZCBjaGFyIGNoID0g KHVuc2lnbmVkIGNoYXIpIHNyY1tpXTsKLS0gCjIuNDMuMAoK --=-W8WRkKC08a8g7TPZFKzv--