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.94.2) (envelope-from ) id 1sYsZQ-00EkNU-1s for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jul 2024 19:31:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sYsZM-00Cthk-Vk for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jul 2024 19:31:36 +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.94.2) (envelope-from ) id 1sYsZM-00CthS-KV for pgsql-hackers@lists.postgresql.org; Tue, 30 Jul 2024 19:31:36 +0000 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sYsZG-002J3b-0g for pgsql-hackers@postgresql.org; Tue, 30 Jul 2024 19:31:35 +0000 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1fec34f94abso35200365ad.2 for ; Tue, 30 Jul 2024 12:31:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1722367887; x=1722972687; darn=postgresql.org; h=mime-version:user-agent:date:to:from:subject:message-id:from:to:cc :subject:date:message-id:reply-to; bh=PocHajNPOnXy2IPTfYLgpFvmg4bYgrOsmOyezhv1qok=; b=vdCK3khCFiRCg4LT9eXQLdClI4eo2eeoDCTgSdEuegx0j+Hjm6qAnQbZt86dy3JM77 De3Ca8akuDxXVqMmJFik9S5J3oOKBDN0aPI5968JLHpDTp7qevVwh8arnzFIidn44NeN LO/ESGXPQ2xHbLVJczA26BliHf0I8WNjXWHNchOZzsboIsJlrtrjQh/gR3RaLe96OV8B SPRtwNer0vqRF69CHeh2iipoOCYYhKRj4Bm0RJN5OkxqGuGaetjwnrCOKhBJut43fvgd GnOoV9/F6sK9YJbEFJFaautOphbKPEVkeed4U9xSfAKFfO9lyrOFSdJDUIq2a2qgPADz 4W2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722367887; x=1722972687; h=mime-version:user-agent:date:to:from:subject:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=PocHajNPOnXy2IPTfYLgpFvmg4bYgrOsmOyezhv1qok=; b=PSJrcD4GFD/2C/PQmC++Mig1mStPGuvISQHCbLegd7SvdBApCm9tCUoyYhP6joKpbN 89aOSAdUrVbNI8uakJ4QTpOGoguNfbjabadtauJOXSfXLkJloxY4/i7LN3EmJStG8HId A/34jLoi1t2gdT+hOZ0p/e/XB7JDO1HF3V0TeSja21rMG9giHqKr0iSwHzFPmOHsmscq Yg5VsX6sCOcWaLv5eNFRP8qNX0LYwLwILUjG23Q0oYcdFDIwNjB1g6YpD2jQm04q/8qH WkoRypuxdvyvrP7eBAwfb32d6zTmfthkoqGI9z6xIVU1hq+81Gk5pvwyk91rn6KTqSou 3/Gw== X-Gm-Message-State: AOJu0YwfLcfccgq3e1rs2MdTHsxkmtMtj7apm9ZV64u3sagRMsqZAr3a p6SGinCkSmkiKwMoxhSkXUVE/Ab8FA1TU6UKkYQvzVqWQmUy3kQsTuhYiYPrJH7+gMVANS70jEU = X-Google-Smtp-Source: AGHT+IFDrC1ySDg3f6KDx3bDq4smaSLqb4lm4gTqiRB97jDA24F6EwrfbXkLYpNNr/jmaY/jBR7DAA== X-Received: by 2002:a17:902:e752:b0:1fa:47b7:2e41 with SMTP id d9443c01a7336-1ff047e948cmr119485405ad.1.1722367886612; Tue, 30 Jul 2024 12:31:26 -0700 (PDT) Received: from jeff-laptop.lan (c-76-102-242-158.hsd1.ca.comcast.net. [76.102.242.158]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1fed7c8c19dsm105816455ad.54.2024.07.30.12.31.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jul 2024 12:31:25 -0700 (PDT) Message-ID: <32f85d88d1f64395abfe5a10dd97a62a4d3474ce.camel@j-davis.com> Subject: [17+] check after second call to pg_strnxfrm is too strict, relax it From: Jeff Davis To: pgsql-hackers@postgresql.org Date: Tue, 30 Jul 2024 12:31:24 -0700 Content-Type: multipart/mixed; boundary="=-nVXCzuTOjCLNsFD4/O9H" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-nVXCzuTOjCLNsFD4/O9H Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I noticed this comment in selfuncs.c regarding strxfrm(): /* =20 * Some systems (e.g., glibc) can return a smaller value from the=20 * second call than the first; thus the Assert must be <=3D not =3D=3D.= =20 */ Some callers of pg_strnxfrm() are not allowing for that possibility. Patch attached, which should be backported to 17. Regards, Jeff Davis --=-nVXCzuTOjCLNsFD4/O9H Content-Disposition: attachment; filename*0=0001-Relax-check-for-return-value-from-second-call-of-pg_.pat; filename*1=ch Content-Type: text/x-patch; name="0001-Relax-check-for-return-value-from-second-call-of-pg_.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5YTk2ODA0NTVjYWIwY2Y3NDdlZjY1Y2YxMWNmMmNiMDZkNWY1MDBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDMwIEp1bCAyMDI0IDEyOjE2OjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gUmVsYXggY2hl Y2sgZm9yIHJldHVybiB2YWx1ZSBmcm9tIHNlY29uZCBjYWxsIG9mCiBwZ19zdHJueGZybSgpLgoK c3RyeGZybSgpIGlzIG5vdCBndWFyYW50ZWVkIHRvIHJldHVybiB0aGUgZXhhY3QgbnVtYmVyIG9m IGJ5dGVzIG5lZWRlZAp0byBzdG9yZSB0aGUgcmVzdWx0OyBpdCBtYXkgcmV0dXJuIGEgaGlnaGVy IHZhbHVlLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hmdW5jLmMgfCAgNCArKy0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMgIHwgMTIgKysrKysrLS0tLS0tCiBz cmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jICAgIHwgIDQgKystLQogMyBmaWxlcyBjaGFu Z2VkLCAxMCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoZnVuYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gv aGFzaGZ1bmMuYwppbmRleCBjZThlZTBlYTJlZi4uOWQ5YTE2NDY3YjQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hmdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hhc2gvaGFzaGZ1bmMuYwpAQCAtMjk4LDcgKzI5OCw3IEBAIGhhc2h0ZXh0KFBHX0ZVTkNUSU9O X0FSR1MpCiAJCWJ1ZiA9IHBhbGxvYyhic2l6ZSArIDEpOwogCiAJCXJzaXplID0gcGdfc3Rybnhm cm0oYnVmLCBic2l6ZSArIDEsIGtleWRhdGEsIGtleWxlbiwgbXlsb2NhbGUpOwotCQlpZiAocnNp emUgIT0gYnNpemUpCisJCWlmIChyc2l6ZSA+IGJzaXplKQogCQkJZWxvZyhFUlJPUiwgInBnX3N0 cm54ZnJtKCkgcmV0dXJuZWQgdW5leHBlY3RlZCByZXN1bHQiKTsKIAogCQkvKgpAQCAtMzUyLDcg KzM1Miw3IEBAIGhhc2h0ZXh0ZXh0ZW5kZWQoUEdfRlVOQ1RJT05fQVJHUykKIAkJYnVmID0gcGFs bG9jKGJzaXplICsgMSk7CiAKIAkJcnNpemUgPSBwZ19zdHJueGZybShidWYsIGJzaXplICsgMSwg a2V5ZGF0YSwga2V5bGVuLCBteWxvY2FsZSk7Ci0JCWlmIChyc2l6ZSAhPSBic2l6ZSkKKwkJaWYg KHJzaXplID4gYnNpemUpCiAJCQllbG9nKEVSUk9SLCAicGdfc3Rybnhmcm0oKSByZXR1cm5lZCB1 bmV4cGVjdGVkIHJlc3VsdCIpOwogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdfbG9jYWxlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMKaW5k ZXggNjI3YWI4OWQ3Y2MuLjQxMzMwMDc3Y2ZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdfbG9jYWxlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5j CkBAIC0yMzUzLDkgKzIzNTMsOSBAQCBwZ19zdHJ4ZnJtX2VuYWJsZWQocGdfbG9jYWxlX3QgbG9j YWxlKQogICogVGhlIHByb3ZpZGVkICdzcmMnIG11c3QgYmUgbnVsLXRlcm1pbmF0ZWQuIElmICdk ZXN0c2l6ZScgaXMgemVybywgJ2Rlc3QnCiAgKiBtYXkgYmUgTlVMTC4KICAqCi0gKiBSZXR1cm5z IHRoZSBudW1iZXIgb2YgYnl0ZXMgbmVlZGVkIHRvIHN0b3JlIHRoZSB0cmFuc2Zvcm1lZCBzdHJp bmcsCi0gKiBleGNsdWRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bCBieXRlLiBJZiB0aGUgdmFsdWUg cmV0dXJuZWQgaXMgJ2Rlc3RzaXplJyBvcgotICogZ3JlYXRlciwgdGhlIHJlc3VsdGluZyBjb250 ZW50cyBvZiAnZGVzdCcgYXJlIHVuZGVmaW5lZC4KKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBi eXRlcyAob3IgbW9yZSkgbmVlZGVkIHRvIHN0b3JlIHRoZSB0cmFuc2Zvcm1lZAorICogc3RyaW5n LCBleGNsdWRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bCBieXRlLiBJZiB0aGUgdmFsdWUgcmV0dXJu ZWQgaXMKKyAqICdkZXN0c2l6ZScgb3IgZ3JlYXRlciwgdGhlIHJlc3VsdGluZyBjb250ZW50cyBv ZiAnZGVzdCcgYXJlIHVuZGVmaW5lZC4KICAqLwogc2l6ZV90CiBwZ19zdHJ4ZnJtKGNoYXIgKmRl c3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IGRlc3RzaXplLCBwZ19sb2NhbGVfdCBsb2NhbGUp CkBAIC0yMzg1LDkgKzIzODUsOSBAQCBwZ19zdHJ4ZnJtKGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIg KnNyYywgc2l6ZV90IGRlc3RzaXplLCBwZ19sb2NhbGVfdCBsb2NhbGUpCiAgKiAnc3JjJyBkb2Vz IG5vdCBuZWVkIHRvIGJlIG51bC10ZXJtaW5hdGVkLiBJZiAnZGVzdHNpemUnIGlzIHplcm8sICdk ZXN0JyBtYXkKICAqIGJlIE5VTEwuCiAgKgotICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVz IG5lZWRlZCB0byBzdG9yZSB0aGUgdHJhbnNmb3JtZWQgc3RyaW5nLAotICogZXhjbHVkaW5nIHRo ZSB0ZXJtaW5hdGluZyBudWwgYnl0ZS4gSWYgdGhlIHZhbHVlIHJldHVybmVkIGlzICdkZXN0c2l6 ZScgb3IKLSAqIGdyZWF0ZXIsIHRoZSByZXN1bHRpbmcgY29udGVudHMgb2YgJ2Rlc3QnIGFyZSB1 bmRlZmluZWQuCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgKG9yIG1vcmUpIG5lZWRl ZCB0byBzdG9yZSB0aGUgdHJhbnNmb3JtZWQKKyAqIHN0cmluZywgZXhjbHVkaW5nIHRoZSB0ZXJt aW5hdGluZyBudWwgYnl0ZS4gSWYgdGhlIHZhbHVlIHJldHVybmVkIGlzCisgKiAnZGVzdHNpemUn IG9yIGdyZWF0ZXIsIHRoZSByZXN1bHRpbmcgY29udGVudHMgb2YgJ2Rlc3QnIGFyZSB1bmRlZmlu ZWQuCiAgKgogICogVGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBudWwtdGVybWluYXRlIHRoZSBh cmd1bWVudCBmb3IgbGliYyBmdW5jdGlvbnM7CiAgKiBzbyBpZiB0aGUgY2FsbGVyIGFscmVhZHkg aGFzIGEgbnVsLXRlcm1pbmF0ZWQgc3RyaW5nLCBpdCBzaG91bGQgY2FsbApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJjaGFyLmMKaW5kZXggMDJkZmUyMTlmNTQuLmI1Y2M1YzQ3OTJlIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJjaGFyLmMKQEAgLTEwMjgsNyArMTAyOCw3IEBAIGhhc2hicGNoYXIoUEdfRlVOQ1RJT05fQVJH UykKIAkJYnVmID0gcGFsbG9jKGJzaXplICsgMSk7CiAKIAkJcnNpemUgPSBwZ19zdHJueGZybShi dWYsIGJzaXplICsgMSwga2V5ZGF0YSwga2V5bGVuLCBteWxvY2FsZSk7Ci0JCWlmIChyc2l6ZSAh PSBic2l6ZSkKKwkJaWYgKHJzaXplID4gYnNpemUpCiAJCQllbG9nKEVSUk9SLCAicGdfc3Rybnhm cm0oKSByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdCIpOwogCiAJCS8qCkBAIC0xMDg0LDcgKzEw ODQsNyBAQCBoYXNoYnBjaGFyZXh0ZW5kZWQoUEdfRlVOQ1RJT05fQVJHUykKIAkJYnVmID0gcGFs bG9jKGJzaXplICsgMSk7CiAKIAkJcnNpemUgPSBwZ19zdHJueGZybShidWYsIGJzaXplICsgMSwg a2V5ZGF0YSwga2V5bGVuLCBteWxvY2FsZSk7Ci0JCWlmIChyc2l6ZSAhPSBic2l6ZSkKKwkJaWYg KHJzaXplID4gYnNpemUpCiAJCQllbG9nKEVSUk9SLCAicGdfc3Rybnhmcm0oKSByZXR1cm5lZCB1 bmV4cGVjdGVkIHJlc3VsdCIpOwogCiAJCS8qCi0tIAoyLjM0LjEKCg== --=-nVXCzuTOjCLNsFD4/O9H--