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 1vr19g-0051P7-2F for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Feb 2026 21:56:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vr19f-00GNjW-1E for pgsql-hackers@arkaria.postgresql.org; Fri, 13 Feb 2026 21:56:51 +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 1vr19e-00GNjJ-2i for pgsql-hackers@lists.postgresql.org; Fri, 13 Feb 2026 21:56:51 +0000 Received: from mail-dy1-x1333.google.com ([2607:f8b0:4864:20::1333]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vr19b-00000000YTO-3Rpg for pgsql-hackers@postgresql.org; Fri, 13 Feb 2026 21:56:50 +0000 Received: by mail-dy1-x1333.google.com with SMTP id 5a478bee46e88-2ba68df3687so2235344eec.1 for ; Fri, 13 Feb 2026 13:56:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1771019805; x=1771624605; darn=postgresql.org; h=mime-version:user-agent:date:to:from:subject:message-id:from:to:cc :subject:date:message-id:reply-to; bh=8ZV2kwYhnWwUcgpjLuupffUoeMgYxZcv262fA52nTVI=; b=G7ZMGqqex0UCcSiwD6G6nYjygda7tD+jy0LeuWBMFC16UGUB5zECIZlG/+7PaRweeb 1T+y+mY4cjbaWGwDhwV/MApQNMs5zqrVKIrOu4V5G6lcgyk4tYwm37XIy6cWX7V/W9GG +PDb6ozw+w95OrYBUYxIZfJIX3XVDhywWipb5M2S2BcvMpwsldTf3f8AU2gQr9go2b8c gnczsMyn33GKWeLCmqHyjnZwldfj5WokFsNgGFsPaBNC1cMsc8W8Sys7nWq9Q+p3/kfQ JNDK/fWBJLIi1/um+mWoVxNb2ofK4jMpUAPHXbPfijfOjoX97ippKM5EqC6uBwqbonJJ /tHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771019805; x=1771624605; 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=8ZV2kwYhnWwUcgpjLuupffUoeMgYxZcv262fA52nTVI=; b=pHNXpQ3MmRdMJt/x9p9GbysBzM01codAvJcRGBfF3buE+FHq1fGNS5tgUz6mIX6/js q1cwHXAWBIqWpv7i6FSwFUrJq3f2uEjGBRIkVrs8x8jypfv8knkHJv0W0g2pJyKJEKTh 5l3iHpFfR7pLaJxTlLToIEuFr36lNvnQIhFK6xmjKfMVApxG7moI8vW7kovVUeorhnlr X5zhVAIi+zeIn0gwY4fmtUZRcK+OZ+cVnVACVF13xOpXjkUnKGO+gVyCiLWltWP0Tbxw ew8i+/+t6pAlyrAbzT6bCCi9OO9LPXXxqJI1RmK1IAT0di/d0oxc1A6ICKKGtu53sEN6 SOVw== X-Gm-Message-State: AOJu0Yz2BjJnSNx2xuyL7GncNZmM9/PX4IlDrg7NAABQUPYHQVQ+m9KP nhroWR9glEMSj6HW37ixNPf2kfzwB0cm5S+FGr/o4mZjN69AEPYF+isO1kUwrK8sl5XrpDr3TBo rpg4= X-Gm-Gg: AZuq6aKTp7jfBTJC7uJ0Jair8NohimpcAGQNO4X0bcDcDXqkD/22MlD8byKFfO/5313 nUqzsNLhGKHuZCIyUoKIHeLqOa3Jjl+fyUNT02oReJ9XGTxX6SK2P7EEVqLqMtgKr/w4/pZGis5 Bx+GRW5r4i1zI6RAVwmRgyh2DkJSC/e4dmzip4uE2JZvwvt46WT8EtxGt4miVkPrrVNVrZQAr+4 YIVtmEZSJXhrw3hqeUO5nJWaq1DEkpzIG2dBktmWxVrCF+cyxVf9j+5vPqN/S6g+K2khuYKysaH 3dKAt2kS+4WiYNUQPit5LojO/g8HSlbFBUfROABgBqqJ5/B+i9Z1482V/CNJsPc5LOfZLAnEYLZ 7xJL5TADk8uZ8ooUtvGLJUeyKZ//vEuF2F0zwZwGMfQlAX1LTp8JMM6qDMHcOnXOu5CmaaGHhvD KqwA4l+9MPVIGmf0WdsFq0CYAzacICIqkbjxw/TdaPPv2JMho86w2Nw3LMOw74lyqV0mU+Z+uAa HqR5X1W X-Received: by 2002:a05:693c:3114:b0:2b7:2d5e:3f49 with SMTP id 5a478bee46e88-2bac9342c26mr282635eec.10.1771019804548; Fri, 13 Feb 2026 13:56:44 -0800 (PST) Received: from ?IPv6:2001:1890:184f:84e0:1fb4:b465:afde:6699? ([2001:1890:184f:84e0:1fb4:b465:afde:6699]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2bacb67b18bsm94533eec.30.2026.02.13.13.56.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Feb 2026 13:56:43 -0800 (PST) Message-ID: <02c6ef6cf56a5013ede61ad03c7a26affd27d449.camel@j-davis.com> Subject: Fix more multibyte issues in ltree From: Jeff Davis To: pgsql-hackers@postgresql.org Date: Fri, 13 Feb 2026 13:56:42 -0800 Content-Type: multipart/mixed; boundary="=-DBMsktyq7MqymywqRXsG" User-Agent: Evolution 3.52.3-0ubuntu1.1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-DBMsktyq7MqymywqRXsG Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Commit 84d5efa7e3 missed some multibyte issues caused by short-circuit logic in the callers. Repro: -- should return true, returns false SELECT 'sss'::ltree ~ '=C5=BF=C5=BF*@'::lquery; Patches attached; backport to 14 like 84d5efa7e3. Regards, Jeff Davis --=-DBMsktyq7MqymywqRXsG Content-Disposition: attachment; filename="v19.1-0001-Fix-more-multibyte-issues-in-ltree.patch" Content-Type: text/x-patch; name="v19.1-0001-Fix-more-multibyte-issues-in-ltree.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA5YWMzMTRiZjUxYTJlNjAzZDAyMzY3ZDlkNTMwM2I4OTZjY2Q2Nzc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDEzIEZlYiAyMDI2IDEyOjQ4OjUyIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MTkuMV0gRml4 IG1vcmUgbXVsdGlieXRlIGlzc3VlcyBpbiBsdHJlZS4KCkNvbW1pdCA4NGQ1ZWZhN2UzIG1pc3Nl ZCBzb21lIG11bHRpYnl0ZSBpc3N1ZXMgY2F1c2VkIGJ5IHNob3J0LWNpcmN1aXQKbG9naWMgaW4g dGhlIGNhbGxlcnMuIFRoZSBjYWxsZXJzIGFzc3VtZWQgdGhhdCBpZiB0aGUgcHJlZGljYXRlIHN0 cmluZwppcyBsb25nZXIgdGhhbiB0aGUgbGFiZWwgc3RyaW5nLCB0aGVuIGl0IGNvdWxkbid0IHBv c3NpYmx5IGJlIGEgbWF0Y2gsCmJ1dCBpdCBjYW4gYmUgd2hlbiB1c2luZyBjYXNlLWluc2Vuc2l0 aXZlIG1hdGNoaW5nIChMVkFSX0lOQ0FTRSkgaWYKY2FzZWZvbGRpbmcgY2hhbmdlcyB0aGUgYnl0 ZSBsZW5ndGguCgpGaXggYnkgcmVmYWN0b3JpbmcgdG8gZ2V0IHJpZCBvZiB0aGUgc2hvcnQtY2ly Y3VpdCBsb2dpYyBhcyB3ZWxsIGFzCnRoZSBmdW5jdGlvbiBwb2ludGVyLCBhbmQgY29uc29saWRh dGUgdGhlIGxvZ2ljIGluIGEgcmVwbGFjZW1lbnQKZnVuY3Rpb24gbHRyZWVfbGFiZWxfbWF0Y2go KS4KCkJhY2twYXRjaC10aHJvdWdoOiAxNAotLS0KIGNvbnRyaWIvbHRyZWUvbHF1ZXJ5X29wLmMg ICAgfCAxMDMgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIGNvbnRyaWIvbHRy ZWUvbHRyZWUuaCAgICAgICAgfCAgMTAgKystLQogY29udHJpYi9sdHJlZS9sdHh0cXVlcnlfb3Au YyB8ICAxMSArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDY0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbHRyZWUvbHF1ZXJ5X29wLmMgYi9jb250cmli L2x0cmVlL2xxdWVyeV9vcC5jCmluZGV4IDBhZGNkZDhmZjJhLi5lNmExOTY5YzNkMyAxMDA2NDQK LS0tIGEvY29udHJpYi9sdHJlZS9scXVlcnlfb3AuYworKysgYi9jb250cmliL2x0cmVlL2xxdWVy eV9vcC5jCkBAIC00MSw4ICs0MSw3IEBAIGdldGxleGVtZShjaGFyICpzdGFydCwgY2hhciAqZW5k LCBpbnQgKmxlbikKIH0KIAogYm9vbAotY29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0LCBj aGFyICpxbiwgaW50IGxlbiwKLQkJCQlsdHJlZV9wcmVmaXhfZXFfZnVuYyBwcmVmaXhfZXEsIGJv b2wgYW55ZW5kKQorY29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0LCBjaGFyICpxbiwgaW50 IGxlbiwgYm9vbCBwcmVmaXgsIGJvb2wgY2kpCiB7CiAJY2hhcgkgICAqZW5kdCA9IHQtPm5hbWUg KyB0LT5sZW47CiAJY2hhcgkgICAqZW5kcSA9IHFuICsgbGVuOwpAQCAtNTcsMTAgKzU2LDggQEAg Y29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0LCBjaGFyICpxbiwgaW50IGxlbiwKIAkJaXNv ayA9IGZhbHNlOwogCQl3aGlsZSAoKHRuID0gZ2V0bGV4ZW1lKHRuLCBlbmR0LCAmbGVudCkpICE9 IE5VTEwpCiAJCXsKLQkJCWlmICgobGVudCA9PSBsZW5xIHx8IChsZW50ID4gbGVucSAmJiBhbnll bmQpKSAmJgotCQkJCSgqcHJlZml4X2VxKSAocW4sIGxlbnEsIHRuLCBsZW50KSkKKwkJCWlmIChs dHJlZV9sYWJlbF9tYXRjaChxbiwgbGVucSwgdG4sIGxlbnQsIHByZWZpeCwgY2kpKQogCQkJewot CiAJCQkJaXNvayA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC03Niw2NCArNzMsNjkgQEAg Y29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0LCBjaGFyICpxbiwgaW50IGxlbiwKIH0KIAog LyoKLSAqIENoZWNrIGlmICdhJyBpcyBhIHByZWZpeCBvZiAnYicuCi0gKi8KLWJvb2wKLWx0cmVl X3ByZWZpeF9lcShjb25zdCBjaGFyICphLCBzaXplX3QgYV9zeiwgY29uc3QgY2hhciAqYiwgc2l6 ZV90IGJfc3opCi17Ci0JaWYgKGFfc3ogPiBiX3N6KQotCQlyZXR1cm4gZmFsc2U7Ci0JZWxzZQot CQlyZXR1cm4gKHN0cm5jbXAoYSwgYiwgYV9zeikgPT0gMCk7Ci19Ci0KLS8qCi0gKiBDYXNlLWlu c2Vuc2l0aXZlIGNoZWNrIGlmICdhJyBpcyBhIHByZWZpeCBvZiAnYicuCisgKiBDaGVjayBpZiB0 aGUgbGFiZWwgbWF0Y2hlcyB0aGUgcHJlZGljYXRlIHN0cmluZy4gSWYgJ3ByZWZpeCcgaXMgdHJ1 ZSwgdGhlbgorICogdGhlIHByZWRpY2F0ZSBzdHJpbmcgaXMgdHJlYXRlZCBhcyBhIHByZWZpeC4g SWYgJ2NpJyBpcyB0cnVlLCB0aGVuIHRoZQorICogcHJlZGljYXRlIHN0cmluZyBpcyBjYXNlLWlu c2Vuc2l0aXZlIChhbmQgbG9jYWxlLWF3YXJlKS4KICAqLwogYm9vbAotbHRyZWVfcHJlZml4X2Vx X2NpKGNvbnN0IGNoYXIgKmEsIHNpemVfdCBhX3N6LCBjb25zdCBjaGFyICpiLCBzaXplX3QgYl9z eikKK2x0cmVlX2xhYmVsX21hdGNoKGNvbnN0IGNoYXIgKnByZWQsIHNpemVfdCBwcmVkX2xlbiwg Y29uc3QgY2hhciAqbGFiZWwsCisJCQkJICBzaXplX3QgbGFiZWxfbGVuLCBib29sIHByZWZpeCwg Ym9vbCBjaSkKIHsKIAlzdGF0aWMgcGdfbG9jYWxlX3QgbG9jYWxlID0gTlVMTDsKLQlzaXplX3QJ CWFsX3N6ID0gYV9zeiArIDE7Ci0Jc2l6ZV90CQlhbF9sZW47Ci0JY2hhcgkgICAqYWwgPSBwYWxs b2MoYWxfc3opOwotCXNpemVfdAkJYmxfc3ogPSBiX3N6ICsgMTsKLQlzaXplX3QJCWJsX2xlbjsK LQljaGFyCSAgICpibCA9IHBhbGxvYyhibF9zeik7CisJY2hhcgkgICAqZnByZWQ7CQkJLyogY2Fz ZWZvbGRlZCBwcmVkaWNhdGUgKi8KKwlzaXplX3QJCWZwcmVkX2xlbiA9IHByZWRfbGVuOworCWNo YXIJICAgKmZsYWJlbDsJCQkvKiBjYXNlZm9sZGVkIGxhYmVsICovCisJc2l6ZV90CQlmbGFiZWxf bGVuID0gbGFiZWxfbGVuOworCXNpemVfdAkJbGVuOwogCWJvb2wJCXJlczsKIAorCS8qIGZhc3Qg cGF0aCBmb3IgYmluYXJ5IG1hdGNoIG9yIGJpbmFyeSBwcmVmaXggbWF0Y2ggKi8KKwlpZiAoKHBy ZWRfbGVuID09IGxhYmVsX2xlbiB8fCAocHJlZml4ICYmIHByZWRfbGVuIDwgbGFiZWxfbGVuKSkg JiYKKwkJc3RybmNtcChwcmVkLCBsYWJlbCwgcHJlZF9sZW4pID09IDApCisJCXJldHVybiB0cnVl OworCWVsc2UgaWYgKCFjaSkKKwkJcmV0dXJuIGZhbHNlOworCisJLyoKKwkgKiBTbG93IHBhdGgg Zm9yIGNhc2UtaW5zZW5zaXRpdmUgY29tcGFyaXNvbjogY2FzZSBmb2xkIGFuZCB0aGVuIGNvbXBh cmUuCisJICogVGhpcyBwYXRoIGlzIG5lY2Vzc2FyeSBldmVuIGlmIHByZWRfbGVuID4gbGFiZWxf bGVuLCBiZWNhdXNlIHRoZSBieXRlCisJICogbGVuZ3RocyBtYXkgY2hhbmdlIGFmdGVyIGNhc2Vm b2xkaW5nLgorCSAqLwogCWlmICghbG9jYWxlKQogCQlsb2NhbGUgPSBwZ19kYXRhYmFzZV9sb2Nh bGUoKTsKIAotCS8qIGNhc2Vmb2xkIGJvdGggYSBhbmQgYiAqLwotCi0JYWxfbGVuID0gcGdfc3Ry Zm9sZChhbCwgYWxfc3osIGEsIGFfc3osIGxvY2FsZSk7Ci0JaWYgKGFsX2xlbiArIDEgPiBhbF9z eikKKwlmcHJlZCA9IHBhbGxvYyhmcHJlZF9sZW4gKyAxKTsKKwlsZW4gPSBwZ19zdHJmb2xkKGZw cmVkLCBmcHJlZF9sZW4gKyAxLCBwcmVkLCBwcmVkX2xlbiwgbG9jYWxlKTsKKwlpZiAobGVuID4g ZnByZWRfbGVuKQogCXsKIAkJLyogZ3JvdyBidWZmZXIgaWYgbmVlZGVkIGFuZCByZXRyeSAqLwot CQlhbF9zeiA9IGFsX2xlbiArIDE7Ci0JCWFsID0gcmVwYWxsb2MoYWwsIGFsX3N6KTsKLQkJYWxf bGVuID0gcGdfc3RyZm9sZChhbCwgYWxfc3osIGEsIGFfc3osIGxvY2FsZSk7Ci0JCUFzc2VydChh bF9sZW4gKyAxIDw9IGFsX3N6KTsKKwkJZnByZWRfbGVuID0gbGVuOworCQlmcHJlZCA9IHJlcGFs bG9jKGZwcmVkLCBmcHJlZF9sZW4gKyAxKTsKKwkJbGVuID0gcGdfc3RyZm9sZChmcHJlZCwgZnBy ZWRfbGVuICsgMSwgcHJlZCwgcHJlZF9sZW4sIGxvY2FsZSk7CiAJfQorCUFzc2VydChsZW4gPD0g ZnByZWRfbGVuKTsKKwlmcHJlZF9sZW4gPSBsZW47CiAKLQlibF9sZW4gPSBwZ19zdHJmb2xkKGJs LCBibF9zeiwgYiwgYl9zeiwgbG9jYWxlKTsKLQlpZiAoYmxfbGVuICsgMSA+IGJsX3N6KQorCWZs YWJlbCA9IHBhbGxvYyhmbGFiZWxfbGVuICsgMSk7CisJbGVuID0gcGdfc3RyZm9sZChmbGFiZWws IGZsYWJlbF9sZW4gKyAxLCBsYWJlbCwgbGFiZWxfbGVuLCBsb2NhbGUpOworCWlmIChsZW4gPiBm bGFiZWxfbGVuKQogCXsKIAkJLyogZ3JvdyBidWZmZXIgaWYgbmVlZGVkIGFuZCByZXRyeSAqLwot CQlibF9zeiA9IGJsX2xlbiArIDE7Ci0JCWJsID0gcmVwYWxsb2MoYmwsIGJsX3N6KTsKLQkJYmxf bGVuID0gcGdfc3RyZm9sZChibCwgYmxfc3osIGIsIGJfc3osIGxvY2FsZSk7Ci0JCUFzc2VydChi bF9sZW4gKyAxIDw9IGJsX3N6KTsKKwkJZmxhYmVsX2xlbiA9IGxlbjsKKwkJZmxhYmVsID0gcmVw YWxsb2MoZmxhYmVsLCBmbGFiZWxfbGVuICsgMSk7CisJCWxlbiA9IHBnX3N0cmZvbGQoZmxhYmVs LCBmbGFiZWxfbGVuICsgMSwgbGFiZWwsIGxhYmVsX2xlbiwgbG9jYWxlKTsKIAl9CisJQXNzZXJ0 KGxlbiA8PSBmbGFiZWxfbGVuKTsKKwlmbGFiZWxfbGVuID0gbGVuOwogCi0JaWYgKGFsX2xlbiA+ IGJsX2xlbikKLQkJcmVzID0gZmFsc2U7CisJaWYgKChmcHJlZF9sZW4gPT0gZmxhYmVsX2xlbiB8 fCAocHJlZml4ICYmIGZwcmVkX2xlbiA8IGZsYWJlbF9sZW4pKSAmJgorCQlzdHJuY21wKGZwcmVk LCBmbGFiZWwsIGZwcmVkX2xlbikgPT0gMCkKKwkJcmVzID0gdHJ1ZTsKIAllbHNlCi0JCXJlcyA9 IChzdHJuY21wKGFsLCBibCwgYWxfbGVuKSA9PSAwKTsKKwkJcmVzID0gZmFsc2U7CiAKLQlwZnJl ZShhbCk7Ci0JcGZyZWUoYmwpOworCXBmcmVlKGZwcmVkKTsKKwlwZnJlZShmbGFiZWwpOwogCiAJ cmV0dXJuIHJlczsKIH0KQEAgLTE1OCwxOSArMTYwLDE2IEBAIGNoZWNrTGV2ZWwobHF1ZXJ5X2xl dmVsICpjdXJxLCBsdHJlZV9sZXZlbCAqY3VydCkKIAogCWZvciAoaW50IGkgPSAwOyBpIDwgY3Vy cS0+bnVtdmFyOyBpKyspCiAJewotCQlsdHJlZV9wcmVmaXhfZXFfZnVuYyBwcmVmaXhfZXE7Ci0K LQkJcHJlZml4X2VxID0gKGN1cnZhci0+ZmxhZyAmIExWQVJfSU5DQVNFKSA/IGx0cmVlX3ByZWZp eF9lcV9jaSA6IGx0cmVlX3ByZWZpeF9lcTsKKwkJYm9vbAkJcHJlZml4ID0gKGN1cnZhci0+Zmxh ZyAmIExWQVJfQU5ZRU5EKTsKKwkJYm9vbAkJY2kgPSAoY3VydmFyLT5mbGFnICYgTFZBUl9JTkNB U0UpOwogCiAJCWlmIChjdXJ2YXItPmZsYWcgJiBMVkFSX1NVQkxFWEVNRSkKIAkJewotCQkJaWYg KGNvbXBhcmVfc3Vibm9kZShjdXJ0LCBjdXJ2YXItPm5hbWUsIGN1cnZhci0+bGVuLCBwcmVmaXhf ZXEsCi0JCQkJCQkJCShjdXJ2YXItPmZsYWcgJiBMVkFSX0FOWUVORCkpKQorCQkJaWYgKGNvbXBh cmVfc3Vibm9kZShjdXJ0LCBjdXJ2YXItPm5hbWUsIGN1cnZhci0+bGVuLCBwcmVmaXgsIGNpKSkK IAkJCQlyZXR1cm4gc3VjY2VzczsKIAkJfQotCQllbHNlIGlmICgoY3VydmFyLT5sZW4gPT0gY3Vy dC0+bGVuIHx8Ci0JCQkJICAoY3VydC0+bGVuID4gY3VydmFyLT5sZW4gJiYgKGN1cnZhci0+Zmxh ZyAmIExWQVJfQU5ZRU5EKSkpICYmCi0JCQkJICgqcHJlZml4X2VxKSAoY3VydmFyLT5uYW1lLCBj dXJ2YXItPmxlbiwgY3VydC0+bmFtZSwgY3VydC0+bGVuKSkKKwkJZWxzZSBpZiAobHRyZWVfbGFi ZWxfbWF0Y2goY3VydmFyLT5uYW1lLCBjdXJ2YXItPmxlbiwgY3VydC0+bmFtZSwKKwkJCQkJCQkJ ICAgY3VydC0+bGVuLCBwcmVmaXgsIGNpKSkKIAkJCXJldHVybiBzdWNjZXNzOwogCiAJCWN1cnZh ciA9IExWQVJfTkVYVChjdXJ2YXIpOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9sdHJlZS9sdHJlZS5o IGIvY29udHJpYi9sdHJlZS9sdHJlZS5oCmluZGV4IGIwZGVkNDBlYmE5Li4yMjZjMWNiMjExNSAx MDA2NDQKLS0tIGEvY29udHJpYi9sdHJlZS9sdHJlZS5oCisrKyBiL2NvbnRyaWIvbHRyZWUvbHRy ZWUuaApAQCAtMTU3LDggKzE1Nyw2IEBAIHR5cGVkZWYgc3RydWN0CiAJY2hhcgkJZGF0YVtGTEVY SUJMRV9BUlJBWV9NRU1CRVJdOwogfSBsdHh0cXVlcnk7CiAKLXR5cGVkZWYgYm9vbCAoKmx0cmVl X3ByZWZpeF9lcV9mdW5jKSAoY29uc3QgY2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgc2l6 ZV90KTsKLQogI2RlZmluZSBIRFJTSVpFUVQJCU1BWEFMSUdOKFZBUkhEUlNaICsgc2l6ZW9mKGlu dDMyKSkKICNkZWZpbmUgQ09NUFVURVNJWkUoc2l6ZSxsZW5vZm9wZXJhbmQpCSggSERSU0laRVFU ICsgKHNpemUpICogc2l6ZW9mKElURU0pICsgKGxlbm9mb3BlcmFuZCkgKQogI2RlZmluZSBMVFhU UVVFUllfVE9PX0JJRyhzaXplLGxlbm9mb3BlcmFuZCkgXApAQCAtMjA5LDExICsyMDcsMTEgQEAg Ym9vbAkJbHRyZWVfZXhlY3V0ZShJVEVNICpjdXJpdGVtLCB2b2lkICpjaGVja3ZhbCwKIAogaW50 CQkJbHRyZWVfY29tcGFyZShjb25zdCBsdHJlZSAqYSwgY29uc3QgbHRyZWUgKmIpOwogYm9vbAkJ aW5uZXJfaXNwYXJlbnQoY29uc3QgbHRyZWUgKmMsIGNvbnN0IGx0cmVlICpwKTsKLWJvb2wJCWNv bXBhcmVfc3Vibm9kZShsdHJlZV9sZXZlbCAqdCwgY2hhciAqcW4sIGludCBsZW4sCi0JCQkJCQkJ bHRyZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2VxLCBib29sIGFueWVuZCk7Citib29sCQljb21w YXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBpbnQgbGVuLCBib29sIHByZWZp eCwgYm9vbCBjaSk7CiBsdHJlZQkgICAqbGNhX2lubmVyKGx0cmVlICoqYSwgaW50IGxlbik7Ci1i b29sCQlsdHJlZV9wcmVmaXhfZXEoY29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNo YXIgKmIsIHNpemVfdCBiX3N6KTsKLWJvb2wJCWx0cmVlX3ByZWZpeF9lcV9jaShjb25zdCBjaGFy ICphLCBzaXplX3QgYV9zeiwgY29uc3QgY2hhciAqYiwgc2l6ZV90IGJfc3opOworYm9vbAkJbHRy ZWVfbGFiZWxfbWF0Y2goY29uc3QgY2hhciAqcHJlZCwgc2l6ZV90IHByZWRfbGVuLAorCQkJCQkJ CSAgY29uc3QgY2hhciAqbGFiZWwsIHNpemVfdCBsYWJlbF9sZW4sCisJCQkJCQkJICBib29sIHBy ZWZpeCwgYm9vbCBjaSk7CiAKIC8qIGZtZ3IgbWFjcm9zIGZvciBsdHJlZSBvYmplY3RzICovCiAj ZGVmaW5lIERhdHVtR2V0THRyZWVQKFgpCQkJKChsdHJlZSAqKSBQR19ERVRPQVNUX0RBVFVNKFgp KQpkaWZmIC0tZ2l0IGEvY29udHJpYi9sdHJlZS9sdHh0cXVlcnlfb3AuYyBiL2NvbnRyaWIvbHRy ZWUvbHR4dHF1ZXJ5X29wLmMKaW5kZXggM2RjYmFiMmM0ODQuLjBlNjYxMmZmNzdhIDEwMDY0NAot LS0gYS9jb250cmliL2x0cmVlL2x0eHRxdWVyeV9vcC5jCisrKyBiL2NvbnRyaWIvbHRyZWUvbHR4 dHF1ZXJ5X29wLmMKQEAgLTU4LDE5ICs1OCwxOCBAQCBjaGVja2NvbmRpdGlvbl9zdHIodm9pZCAq Y2hlY2t2YWwsIElURU0gKnZhbCkKIAlsdHJlZV9sZXZlbCAqbGV2ZWwgPSBMVFJFRV9GSVJTVCgo KENIS1ZBTCAqKSBjaGVja3ZhbCktPm5vZGUpOwogCWludAkJCXRsZW4gPSAoKENIS1ZBTCAqKSBj aGVja3ZhbCktPm5vZGUtPm51bWxldmVsOwogCWNoYXIJICAgKm9wID0gKChDSEtWQUwgKikgY2hl Y2t2YWwpLT5vcGVyYW5kICsgdmFsLT5kaXN0YW5jZTsKLQlsdHJlZV9wcmVmaXhfZXFfZnVuYyBw cmVmaXhfZXE7CisJYm9vbAkJcHJlZml4ID0gKHZhbC0+ZmxhZyAmIExWQVJfQU5ZRU5EKTsKKwli b29sCQljaSA9ICh2YWwtPmZsYWcgJiBMVkFSX0lOQ0FTRSk7CiAKLQlwcmVmaXhfZXEgPSAodmFs LT5mbGFnICYgTFZBUl9JTkNBU0UpID8gbHRyZWVfcHJlZml4X2VxX2NpIDogbHRyZWVfcHJlZml4 X2VxOwogCXdoaWxlICh0bGVuID4gMCkKIAl7CiAJCWlmICh2YWwtPmZsYWcgJiBMVkFSX1NVQkxF WEVNRSkKIAkJewotCQkJaWYgKGNvbXBhcmVfc3Vibm9kZShsZXZlbCwgb3AsIHZhbC0+bGVuZ3Ro LCBwcmVmaXhfZXEsICh2YWwtPmZsYWcgJiBMVkFSX0FOWUVORCkpKQorCQkJaWYgKGNvbXBhcmVf c3Vibm9kZShsZXZlbCwgb3AsIHZhbC0+bGVuZ3RoLCBwcmVmaXgsIGNpKSkKIAkJCQlyZXR1cm4g dHJ1ZTsKIAkJfQotCQllbHNlIGlmICgodmFsLT5sZW5ndGggPT0gbGV2ZWwtPmxlbiB8fAotCQkJ CSAgKGxldmVsLT5sZW4gPiB2YWwtPmxlbmd0aCAmJiAodmFsLT5mbGFnICYgTFZBUl9BTllFTkQp KSkgJiYKLQkJCQkgKCpwcmVmaXhfZXEpIChvcCwgdmFsLT5sZW5ndGgsIGxldmVsLT5uYW1lLCBs ZXZlbC0+bGVuKSkKKwkJZWxzZSBpZiAobHRyZWVfbGFiZWxfbWF0Y2gob3AsIHZhbC0+bGVuZ3Ro LCBsZXZlbC0+bmFtZSwgbGV2ZWwtPmxlbiwKKwkJCQkJCQkJICAgcHJlZml4LCBjaSkpCiAJCQly ZXR1cm4gdHJ1ZTsKIAogCQl0bGVuLS07Ci0tIAoyLjQzLjAKCg== --=-DBMsktyq7MqymywqRXsG Content-Disposition: attachment; filename="v18.1-0001-Fix-more-multibyte-issues-in-ltree.patch" Content-Type: text/x-patch; name="v18.1-0001-Fix-more-multibyte-issues-in-ltree.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmNDE2MjJjM2UzNzFhYWNiNWFjNDQ4Y2M0MTYzZDJhMWE1MWMxMTQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDEzIEZlYiAyMDI2IDEyOjQ4OjUyIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MTguMV0gRml4 IG1vcmUgbXVsdGlieXRlIGlzc3VlcyBpbiBsdHJlZS4KCkNvbW1pdCA4NGQ1ZWZhN2UzIG1pc3Nl ZCBzb21lIG11bHRpYnl0ZSBpc3N1ZXMgY2F1c2VkIGJ5IHNob3J0LWNpcmN1aXQKbG9naWMgaW4g dGhlIGNhbGxlcnMuIFRoZSBjYWxsZXJzIGFzc3VtZWQgdGhhdCBpZiB0aGUgcHJlZGljYXRlIHN0 cmluZwppcyBsb25nZXIgdGhhbiB0aGUgbGFiZWwgc3RyaW5nLCB0aGVuIGl0IGNvdWxkbid0IHBv c3NpYmx5IGJlIGEgbWF0Y2gsCmJ1dCBpdCBjYW4gYmUgd2hlbiB1c2luZyBjYXNlLWluc2Vuc2l0 aXZlIG1hdGNoaW5nIChMVkFSX0lOQ0FTRSkgaWYKY2FzZWZvbGRpbmcgY2hhbmdlcyB0aGUgYnl0 ZSBsZW5ndGguCgpGaXggYnkgcmVmYWN0b3JpbmcgdG8gZ2V0IHJpZCBvZiB0aGUgc2hvcnQtY2ly Y3VpdCBsb2dpYyBhcyB3ZWxsIGFzCnRoZSBmdW5jdGlvbiBwb2ludGVyLCBhbmQgY29uc29saWRh dGUgdGhlIGxvZ2ljIGluIGEgcmVwbGFjZW1lbnQKZnVuY3Rpb24gbHRyZWVfbGFiZWxfbWF0Y2go KS4KCkJhY2twYXRjaC10aHJvdWdoOiAxNAotLS0KIGNvbnRyaWIvbHRyZWUvbHF1ZXJ5X29wLmMg ICAgfCAxMTEgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIGNvbnRyaWIvbHRy ZWUvbHRyZWUuaCAgICAgICAgfCAgMTAgKystLQogY29udHJpYi9sdHJlZS9sdHh0cXVlcnlfb3Au YyB8ICAxMSArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDY5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbHRyZWUvbHF1ZXJ5X29wLmMgYi9jb250cmli L2x0cmVlL2xxdWVyeV9vcC5jCmluZGV4IDE0ZDg0ZTgxYzBiLi5mNTBjZmMzMzRjNCAxMDA2NDQK LS0tIGEvY29udHJpYi9sdHJlZS9scXVlcnlfb3AuYworKysgYi9jb250cmliL2x0cmVlL2xxdWVy eV9vcC5jCkBAIC00MSw4ICs0MSw3IEBAIGdldGxleGVtZShjaGFyICpzdGFydCwgY2hhciAqZW5k LCBpbnQgKmxlbikKIH0KIAogYm9vbAotY29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0LCBj aGFyICpxbiwgaW50IGxlbiwKLQkJCQlsdHJlZV9wcmVmaXhfZXFfZnVuYyBwcmVmaXhfZXEsIGJv b2wgYW55ZW5kKQorY29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0LCBjaGFyICpxbiwgaW50 IGxlbiwgYm9vbCBwcmVmaXgsIGJvb2wgY2kpCiB7CiAJY2hhcgkgICAqZW5kdCA9IHQtPm5hbWUg KyB0LT5sZW47CiAJY2hhcgkgICAqZW5kcSA9IHFuICsgbGVuOwpAQCAtNTcsMTAgKzU2LDggQEAg Y29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0LCBjaGFyICpxbiwgaW50IGxlbiwKIAkJaXNv ayA9IGZhbHNlOwogCQl3aGlsZSAoKHRuID0gZ2V0bGV4ZW1lKHRuLCBlbmR0LCAmbGVudCkpICE9 IE5VTEwpCiAJCXsKLQkJCWlmICgobGVudCA9PSBsZW5xIHx8IChsZW50ID4gbGVucSAmJiBhbnll bmQpKSAmJgotCQkJCSgqcHJlZml4X2VxKSAocW4sIGxlbnEsIHRuLCBsZW50KSkKKwkJCWlmIChs dHJlZV9sYWJlbF9tYXRjaChxbiwgbGVucSwgdG4sIGxlbnQsIHByZWZpeCwgY2kpKQogCQkJewot CiAJCQkJaXNvayA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC03Niw4MSArNzMsODQgQEAg Y29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0LCBjaGFyICpxbiwgaW50IGxlbiwKIH0KIAog LyoKLSAqIENoZWNrIGlmICdhJyBpcyBhIHByZWZpeCBvZiAnYicuCi0gKi8KLWJvb2wKLWx0cmVl X3ByZWZpeF9lcShjb25zdCBjaGFyICphLCBzaXplX3QgYV9zeiwgY29uc3QgY2hhciAqYiwgc2l6 ZV90IGJfc3opCi17Ci0JaWYgKGFfc3ogPiBiX3N6KQotCQlyZXR1cm4gZmFsc2U7Ci0JZWxzZQot CQlyZXR1cm4gKHN0cm5jbXAoYSwgYiwgYV9zeikgPT0gMCk7Ci19Ci0KLS8qCi0gKiBDYXNlLWlu c2Vuc2l0aXZlIGNoZWNrIGlmICdhJyBpcyBhIHByZWZpeCBvZiAnYicuCisgKiBDaGVjayBpZiB0 aGUgbGFiZWwgbWF0Y2hlcyB0aGUgcHJlZGljYXRlIHN0cmluZy4gSWYgJ3ByZWZpeCcgaXMgdHJ1 ZSwgdGhlbgorICogdGhlIHByZWRpY2F0ZSBzdHJpbmcgaXMgdHJlYXRlZCBhcyBhIHByZWZpeC4g SWYgJ2NpJyBpcyB0cnVlLCB0aGVuIHRoZQorICogcHJlZGljYXRlIHN0cmluZyBpcyBjYXNlLWlu c2Vuc2l0aXZlIChhbmQgbG9jYWxlLWF3YXJlKS4KICAqLwogYm9vbAotbHRyZWVfcHJlZml4X2Vx X2NpKGNvbnN0IGNoYXIgKmEsIHNpemVfdCBhX3N6LCBjb25zdCBjaGFyICpiLCBzaXplX3QgYl9z eikKK2x0cmVlX2xhYmVsX21hdGNoKGNvbnN0IGNoYXIgKnByZWQsIHNpemVfdCBwcmVkX2xlbiwg Y29uc3QgY2hhciAqbGFiZWwsCisJCQkJICBzaXplX3QgbGFiZWxfbGVuLCBib29sIHByZWZpeCwg Ym9vbCBjaSkKIHsKIAlzdGF0aWMgcGdfbG9jYWxlX3QgbG9jYWxlID0gTlVMTDsKLQlzaXplX3QJ CWFsX3N6ID0gYV9zeiArIDE7Ci0Jc2l6ZV90CQlhbF9sZW47Ci0JY2hhcgkgICAqYWw7Ci0Jc2l6 ZV90CQlibF9zeiA9IGJfc3ogKyAxOwotCXNpemVfdAkJYmxfbGVuOwotCWNoYXIJICAgKmJsOwor CWNoYXIJICAgKmZwcmVkOwkJCS8qIGNhc2Vmb2xkZWQgcHJlZGljYXRlICovCisJc2l6ZV90CQlm cHJlZF9sZW4gPSBwcmVkX2xlbjsKKwljaGFyCSAgICpmbGFiZWw7CQkJLyogY2FzZWZvbGRlZCBs YWJlbCAqLworCXNpemVfdAkJZmxhYmVsX2xlbiA9IGxhYmVsX2xlbjsKKwlzaXplX3QJCWxlbjsK IAlib29sCQlyZXM7CiAKKwkvKiBmYXN0IHBhdGggZm9yIGJpbmFyeSBtYXRjaCBvciBiaW5hcnkg cHJlZml4IG1hdGNoICovCisJaWYgKChwcmVkX2xlbiA9PSBsYWJlbF9sZW4gfHwgKHByZWZpeCAm JiBwcmVkX2xlbiA8IGxhYmVsX2xlbikpICYmCisJCXN0cm5jbXAocHJlZCwgbGFiZWwsIHByZWRf bGVuKSA9PSAwKQorCQlyZXR1cm4gdHJ1ZTsKKwllbHNlIGlmICghY2kpCisJCXJldHVybiBmYWxz ZTsKKwogCWlmICghbG9jYWxlKQogCQlsb2NhbGUgPSBwZ19uZXdsb2NhbGVfZnJvbV9jb2xsYXRp b24oREVGQVVMVF9DT0xMQVRJT05fT0lEKTsKIAogCWlmIChsb2NhbGUtPmN0eXBlX2lzX2MpCiAJ ewotCQlpZiAoYV9zeiA+IGJfc3opCisJCWlmIChwcmVkX2xlbiA+IGxhYmVsX2xlbikKIAkJCXJl dHVybiBmYWxzZTsKIAotCQlmb3IgKGludCBpID0gMDsgaSA8IGFfc3o7IGkrKykKKwkJZm9yIChp bnQgaSA9IDA7IGkgPCBwcmVkX2xlbjsgaSsrKQogCQl7Ci0JCQlpZiAocGdfYXNjaWlfdG9sb3dl cihhW2ldKSAhPSBwZ19hc2NpaV90b2xvd2VyKGJbaV0pKQorCQkJaWYgKHBnX2FzY2lpX3RvbG93 ZXIocHJlZFtpXSkgIT0gcGdfYXNjaWlfdG9sb3dlcihsYWJlbFtpXSkpCiAJCQkJcmV0dXJuIGZh bHNlOwogCQl9CiAKIAkJcmV0dXJuIHRydWU7CiAJfQogCi0JYWwgPSBwYWxsb2MoYWxfc3opOwot CWJsID0gcGFsbG9jKGJsX3N6KTsKLQotCS8qIGNhc2Vmb2xkIGJvdGggYSBhbmQgYiAqLworCS8q CisJICogU2xvdyBwYXRoIGZvciBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb246IGNhc2UgZm9s ZCBhbmQgdGhlbiBjb21wYXJlLgorCSAqIFRoaXMgcGF0aCBpcyBuZWNlc3NhcnkgZXZlbiBpZiBw cmVkX2xlbiA+IGxhYmVsX2xlbiwgYmVjYXVzZSB0aGUgYnl0ZQorCSAqIGxlbmd0aHMgbWF5IGNo YW5nZSBhZnRlciBjYXNlZm9sZGluZy4KKwkgKi8KIAotCWFsX2xlbiA9IHBnX3N0cmZvbGQoYWws IGFsX3N6LCBhLCBhX3N6LCBsb2NhbGUpOwotCWlmIChhbF9sZW4gKyAxID4gYWxfc3opCisJZnBy ZWQgPSBwYWxsb2MoZnByZWRfbGVuICsgMSk7CisJbGVuID0gcGdfc3RyZm9sZChmcHJlZCwgZnBy ZWRfbGVuICsgMSwgcHJlZCwgcHJlZF9sZW4sIGxvY2FsZSk7CisJaWYgKGxlbiA+IGZwcmVkX2xl bikKIAl7CiAJCS8qIGdyb3cgYnVmZmVyIGlmIG5lZWRlZCBhbmQgcmV0cnkgKi8KLQkJYWxfc3og PSBhbF9sZW4gKyAxOwotCQlhbCA9IHJlcGFsbG9jKGFsLCBhbF9zeik7Ci0JCWFsX2xlbiA9IHBn X3N0cmZvbGQoYWwsIGFsX3N6LCBhLCBhX3N6LCBsb2NhbGUpOwotCQlBc3NlcnQoYWxfbGVuICsg MSA8PSBhbF9zeik7CisJCWZwcmVkX2xlbiA9IGxlbjsKKwkJZnByZWQgPSByZXBhbGxvYyhmcHJl ZCwgZnByZWRfbGVuICsgMSk7CisJCWxlbiA9IHBnX3N0cmZvbGQoZnByZWQsIGZwcmVkX2xlbiAr IDEsIHByZWQsIHByZWRfbGVuLCBsb2NhbGUpOwogCX0KKwlBc3NlcnQobGVuIDw9IGZwcmVkX2xl bik7CisJZnByZWRfbGVuID0gbGVuOwogCi0JYmxfbGVuID0gcGdfc3RyZm9sZChibCwgYmxfc3os IGIsIGJfc3osIGxvY2FsZSk7Ci0JaWYgKGJsX2xlbiArIDEgPiBibF9zeikKKwlmbGFiZWwgPSBw YWxsb2MoZmxhYmVsX2xlbiArIDEpOworCWxlbiA9IHBnX3N0cmZvbGQoZmxhYmVsLCBmbGFiZWxf bGVuICsgMSwgbGFiZWwsIGxhYmVsX2xlbiwgbG9jYWxlKTsKKwlpZiAobGVuID4gZmxhYmVsX2xl bikKIAl7CiAJCS8qIGdyb3cgYnVmZmVyIGlmIG5lZWRlZCBhbmQgcmV0cnkgKi8KLQkJYmxfc3og PSBibF9sZW4gKyAxOwotCQlibCA9IHJlcGFsbG9jKGJsLCBibF9zeik7Ci0JCWJsX2xlbiA9IHBn X3N0cmZvbGQoYmwsIGJsX3N6LCBiLCBiX3N6LCBsb2NhbGUpOwotCQlBc3NlcnQoYmxfbGVuICsg MSA8PSBibF9zeik7CisJCWZsYWJlbF9sZW4gPSBsZW47CisJCWZsYWJlbCA9IHJlcGFsbG9jKGZs YWJlbCwgZmxhYmVsX2xlbiArIDEpOworCQlsZW4gPSBwZ19zdHJmb2xkKGZsYWJlbCwgZmxhYmVs X2xlbiArIDEsIGxhYmVsLCBsYWJlbF9sZW4sIGxvY2FsZSk7CiAJfQorCUFzc2VydChsZW4gPD0g ZmxhYmVsX2xlbik7CisJZmxhYmVsX2xlbiA9IGxlbjsKIAotCWlmIChhbF9sZW4gPiBibF9sZW4p Ci0JCXJlcyA9IGZhbHNlOworCWlmICgoZnByZWRfbGVuID09IGZsYWJlbF9sZW4gfHwgKHByZWZp eCAmJiBmcHJlZF9sZW4gPCBmbGFiZWxfbGVuKSkgJiYKKwkJc3RybmNtcChmcHJlZCwgZmxhYmVs LCBmcHJlZF9sZW4pID09IDApCisJCXJlcyA9IHRydWU7CiAJZWxzZQotCQlyZXMgPSAoc3RybmNt cChhbCwgYmwsIGFsX2xlbikgPT0gMCk7CisJCXJlcyA9IGZhbHNlOwogCi0JcGZyZWUoYWwpOwot CXBmcmVlKGJsKTsKKwlwZnJlZShmcHJlZCk7CisJcGZyZWUoZmxhYmVsKTsKIAogCXJldHVybiBy ZXM7CiB9CkBAIC0xNzUsMTkgKzE3NSwxNiBAQCBjaGVja0xldmVsKGxxdWVyeV9sZXZlbCAqY3Vy cSwgbHRyZWVfbGV2ZWwgKmN1cnQpCiAKIAlmb3IgKGludCBpID0gMDsgaSA8IGN1cnEtPm51bXZh cjsgaSsrKQogCXsKLQkJbHRyZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2VxOwotCi0JCXByZWZp eF9lcSA9IChjdXJ2YXItPmZsYWcgJiBMVkFSX0lOQ0FTRSkgPyBsdHJlZV9wcmVmaXhfZXFfY2kg OiBsdHJlZV9wcmVmaXhfZXE7CisJCWJvb2wJCXByZWZpeCA9IChjdXJ2YXItPmZsYWcgJiBMVkFS X0FOWUVORCk7CisJCWJvb2wJCWNpID0gKGN1cnZhci0+ZmxhZyAmIExWQVJfSU5DQVNFKTsKIAog CQlpZiAoY3VydmFyLT5mbGFnICYgTFZBUl9TVUJMRVhFTUUpCiAJCXsKLQkJCWlmIChjb21wYXJl X3N1Ym5vZGUoY3VydCwgY3VydmFyLT5uYW1lLCBjdXJ2YXItPmxlbiwgcHJlZml4X2VxLAotCQkJ CQkJCQkoY3VydmFyLT5mbGFnICYgTFZBUl9BTllFTkQpKSkKKwkJCWlmIChjb21wYXJlX3N1Ym5v ZGUoY3VydCwgY3VydmFyLT5uYW1lLCBjdXJ2YXItPmxlbiwgcHJlZml4LCBjaSkpCiAJCQkJcmV0 dXJuIHN1Y2Nlc3M7CiAJCX0KLQkJZWxzZSBpZiAoKGN1cnZhci0+bGVuID09IGN1cnQtPmxlbiB8 fAotCQkJCSAgKGN1cnQtPmxlbiA+IGN1cnZhci0+bGVuICYmIChjdXJ2YXItPmZsYWcgJiBMVkFS X0FOWUVORCkpKSAmJgotCQkJCSAoKnByZWZpeF9lcSkgKGN1cnZhci0+bmFtZSwgY3VydmFyLT5s ZW4sIGN1cnQtPm5hbWUsIGN1cnQtPmxlbikpCisJCWVsc2UgaWYgKGx0cmVlX2xhYmVsX21hdGNo KGN1cnZhci0+bmFtZSwgY3VydmFyLT5sZW4sIGN1cnQtPm5hbWUsCisJCQkJCQkJCSAgIGN1cnQt PmxlbiwgcHJlZml4LCBjaSkpCiAJCQlyZXR1cm4gc3VjY2VzczsKIAogCQljdXJ2YXIgPSBMVkFS X05FWFQoY3VydmFyKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbHRyZWUvbHRyZWUuaCBiL2NvbnRy aWIvbHRyZWUvbHRyZWUuaAppbmRleCBiMGRlZDQwZWJhOS4uMjI2YzFjYjIxMTUgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvbHRyZWUvbHRyZWUuaAorKysgYi9jb250cmliL2x0cmVlL2x0cmVlLmgKQEAg LTE1Nyw4ICsxNTcsNiBAQCB0eXBlZGVmIHN0cnVjdAogCWNoYXIJCWRhdGFbRkxFWElCTEVfQVJS QVlfTUVNQkVSXTsKIH0gbHR4dHF1ZXJ5OwogCi10eXBlZGVmIGJvb2wgKCpsdHJlZV9wcmVmaXhf ZXFfZnVuYykgKGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIHNpemVfdCk7Ci0K ICNkZWZpbmUgSERSU0laRVFUCQlNQVhBTElHTihWQVJIRFJTWiArIHNpemVvZihpbnQzMikpCiAj ZGVmaW5lIENPTVBVVEVTSVpFKHNpemUsbGVub2ZvcGVyYW5kKQkoIEhEUlNJWkVRVCArIChzaXpl KSAqIHNpemVvZihJVEVNKSArIChsZW5vZm9wZXJhbmQpICkKICNkZWZpbmUgTFRYVFFVRVJZX1RP T19CSUcoc2l6ZSxsZW5vZm9wZXJhbmQpIFwKQEAgLTIwOSwxMSArMjA3LDExIEBAIGJvb2wJCWx0 cmVlX2V4ZWN1dGUoSVRFTSAqY3VyaXRlbSwgdm9pZCAqY2hlY2t2YWwsCiAKIGludAkJCWx0cmVl X2NvbXBhcmUoY29uc3QgbHRyZWUgKmEsIGNvbnN0IGx0cmVlICpiKTsKIGJvb2wJCWlubmVyX2lz cGFyZW50KGNvbnN0IGx0cmVlICpjLCBjb25zdCBsdHJlZSAqcCk7Ci1ib29sCQljb21wYXJlX3N1 Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBpbnQgbGVuLAotCQkJCQkJCWx0cmVlX3By ZWZpeF9lcV9mdW5jIHByZWZpeF9lcSwgYm9vbCBhbnllbmQpOworYm9vbAkJY29tcGFyZV9zdWJu b2RlKGx0cmVlX2xldmVsICp0LCBjaGFyICpxbiwgaW50IGxlbiwgYm9vbCBwcmVmaXgsIGJvb2wg Y2kpOwogbHRyZWUJICAgKmxjYV9pbm5lcihsdHJlZSAqKmEsIGludCBsZW4pOwotYm9vbAkJbHRy ZWVfcHJlZml4X2VxKGNvbnN0IGNoYXIgKmEsIHNpemVfdCBhX3N6LCBjb25zdCBjaGFyICpiLCBz aXplX3QgYl9zeik7Ci1ib29sCQlsdHJlZV9wcmVmaXhfZXFfY2koY29uc3QgY2hhciAqYSwgc2l6 ZV90IGFfc3osIGNvbnN0IGNoYXIgKmIsIHNpemVfdCBiX3N6KTsKK2Jvb2wJCWx0cmVlX2xhYmVs X21hdGNoKGNvbnN0IGNoYXIgKnByZWQsIHNpemVfdCBwcmVkX2xlbiwKKwkJCQkJCQkgIGNvbnN0 IGNoYXIgKmxhYmVsLCBzaXplX3QgbGFiZWxfbGVuLAorCQkJCQkJCSAgYm9vbCBwcmVmaXgsIGJv b2wgY2kpOwogCiAvKiBmbWdyIG1hY3JvcyBmb3IgbHRyZWUgb2JqZWN0cyAqLwogI2RlZmluZSBE YXR1bUdldEx0cmVlUChYKQkJCSgobHRyZWUgKikgUEdfREVUT0FTVF9EQVRVTShYKSkKZGlmZiAt LWdpdCBhL2NvbnRyaWIvbHRyZWUvbHR4dHF1ZXJ5X29wLmMgYi9jb250cmliL2x0cmVlL2x0eHRx dWVyeV9vcC5jCmluZGV4IDNkY2JhYjJjNDg0Li4wZTY2MTJmZjc3YSAxMDA2NDQKLS0tIGEvY29u dHJpYi9sdHJlZS9sdHh0cXVlcnlfb3AuYworKysgYi9jb250cmliL2x0cmVlL2x0eHRxdWVyeV9v cC5jCkBAIC01OCwxOSArNTgsMTggQEAgY2hlY2tjb25kaXRpb25fc3RyKHZvaWQgKmNoZWNrdmFs LCBJVEVNICp2YWwpCiAJbHRyZWVfbGV2ZWwgKmxldmVsID0gTFRSRUVfRklSU1QoKChDSEtWQUwg KikgY2hlY2t2YWwpLT5ub2RlKTsKIAlpbnQJCQl0bGVuID0gKChDSEtWQUwgKikgY2hlY2t2YWwp LT5ub2RlLT5udW1sZXZlbDsKIAljaGFyCSAgICpvcCA9ICgoQ0hLVkFMICopIGNoZWNrdmFsKS0+ b3BlcmFuZCArIHZhbC0+ZGlzdGFuY2U7Ci0JbHRyZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2Vx OworCWJvb2wJCXByZWZpeCA9ICh2YWwtPmZsYWcgJiBMVkFSX0FOWUVORCk7CisJYm9vbAkJY2kg PSAodmFsLT5mbGFnICYgTFZBUl9JTkNBU0UpOwogCi0JcHJlZml4X2VxID0gKHZhbC0+ZmxhZyAm IExWQVJfSU5DQVNFKSA/IGx0cmVlX3ByZWZpeF9lcV9jaSA6IGx0cmVlX3ByZWZpeF9lcTsKIAl3 aGlsZSAodGxlbiA+IDApCiAJewogCQlpZiAodmFsLT5mbGFnICYgTFZBUl9TVUJMRVhFTUUpCiAJ CXsKLQkJCWlmIChjb21wYXJlX3N1Ym5vZGUobGV2ZWwsIG9wLCB2YWwtPmxlbmd0aCwgcHJlZml4 X2VxLCAodmFsLT5mbGFnICYgTFZBUl9BTllFTkQpKSkKKwkJCWlmIChjb21wYXJlX3N1Ym5vZGUo bGV2ZWwsIG9wLCB2YWwtPmxlbmd0aCwgcHJlZml4LCBjaSkpCiAJCQkJcmV0dXJuIHRydWU7CiAJ CX0KLQkJZWxzZSBpZiAoKHZhbC0+bGVuZ3RoID09IGxldmVsLT5sZW4gfHwKLQkJCQkgIChsZXZl bC0+bGVuID4gdmFsLT5sZW5ndGggJiYgKHZhbC0+ZmxhZyAmIExWQVJfQU5ZRU5EKSkpICYmCi0J CQkJICgqcHJlZml4X2VxKSAob3AsIHZhbC0+bGVuZ3RoLCBsZXZlbC0+bmFtZSwgbGV2ZWwtPmxl bikpCisJCWVsc2UgaWYgKGx0cmVlX2xhYmVsX21hdGNoKG9wLCB2YWwtPmxlbmd0aCwgbGV2ZWwt Pm5hbWUsIGxldmVsLT5sZW4sCisJCQkJCQkJCSAgIHByZWZpeCwgY2kpKQogCQkJcmV0dXJuIHRy dWU7CiAKIAkJdGxlbi0tOwotLSAKMi40My4wCgo= --=-DBMsktyq7MqymywqRXsG Content-Disposition: attachment; filename="v17.1-0001-Fix-more-multibyte-issues-in-ltree.patch" Content-Type: text/x-patch; name="v17.1-0001-Fix-more-multibyte-issues-in-ltree.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3ZjE3NDA5ZDRlMzFmOWQyMDI5MmI2M2M5NjRlODRjYmJhYjU1ZDkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDEzIEZlYiAyMDI2IDEyOjQ4OjUyIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MTcuMV0gRml4 IG1vcmUgbXVsdGlieXRlIGlzc3VlcyBpbiBsdHJlZS4KCkNvbW1pdCA4NGQ1ZWZhN2UzIG1pc3Nl ZCBzb21lIG11bHRpYnl0ZSBpc3N1ZXMgY2F1c2VkIGJ5IHNob3J0LWNpcmN1aXQKbG9naWMgaW4g dGhlIGNhbGxlcnMuIFRoZSBjYWxsZXJzIGFzc3VtZWQgdGhhdCBpZiB0aGUgcHJlZGljYXRlIHN0 cmluZwppcyBsb25nZXIgdGhhbiB0aGUgbGFiZWwgc3RyaW5nLCB0aGVuIGl0IGNvdWxkbid0IHBv c3NpYmx5IGJlIGEgbWF0Y2gsCmJ1dCBpdCBjYW4gYmUgd2hlbiB1c2luZyBjYXNlLWluc2Vuc2l0 aXZlIG1hdGNoaW5nIChMVkFSX0lOQ0FTRSkgaWYKY2FzZWZvbGRpbmcgY2hhbmdlcyB0aGUgYnl0 ZSBsZW5ndGguCgpGaXggYnkgcmVmYWN0b3JpbmcgdG8gZ2V0IHJpZCBvZiB0aGUgc2hvcnQtY2ly Y3VpdCBsb2dpYyBhcyB3ZWxsIGFzCnRoZSBmdW5jdGlvbiBwb2ludGVyLCBhbmQgY29uc29saWRh dGUgdGhlIGxvZ2ljIGluIGEgcmVwbGFjZW1lbnQKZnVuY3Rpb24gbHRyZWVfbGFiZWxfbWF0Y2go KS4KCkJhY2twYXRjaC10aHJvdWdoOiAxNAotLS0KIGNvbnRyaWIvbHRyZWUvbHF1ZXJ5X29wLmMg ICAgfCA2NSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGNvbnRyaWIvbHRy ZWUvbHRyZWUuaCAgICAgICAgfCAxMCArKystLS0KIGNvbnRyaWIvbHRyZWUvbHR4dHF1ZXJ5X29w LmMgfCAxMSArKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgNDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9sdHJlZS9scXVlcnlfb3AuYyBiL2NvbnRy aWIvbHRyZWUvbHF1ZXJ5X29wLmMKaW5kZXggNzAzMDg1YzY3ZGUuLjRkYzYxMGY1MjExIDEwMDY0 NAotLS0gYS9jb250cmliL2x0cmVlL2xxdWVyeV9vcC5jCisrKyBiL2NvbnRyaWIvbHRyZWUvbHF1 ZXJ5X29wLmMKQEAgLTQxLDggKzQxLDcgQEAgZ2V0bGV4ZW1lKGNoYXIgKnN0YXJ0LCBjaGFyICpl bmQsIGludCAqbGVuKQogfQogCiBib29sCi1jb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQs IGNoYXIgKnFuLCBpbnQgbGVuLAotCQkJCWx0cmVlX3ByZWZpeF9lcV9mdW5jIHByZWZpeF9lcSwg Ym9vbCBhbnllbmQpCitjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBp bnQgbGVuLCBib29sIHByZWZpeCwgYm9vbCBjaSkKIHsKIAljaGFyCSAgICplbmR0ID0gdC0+bmFt ZSArIHQtPmxlbjsKIAljaGFyCSAgICplbmRxID0gcW4gKyBsZW47CkBAIC01NywxMCArNTYsOCBA QCBjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBpbnQgbGVuLAogCQlp c29rID0gZmFsc2U7CiAJCXdoaWxlICgodG4gPSBnZXRsZXhlbWUodG4sIGVuZHQsICZsZW50KSkg IT0gTlVMTCkKIAkJewotCQkJaWYgKChsZW50ID09IGxlbnEgfHwgKGxlbnQgPiBsZW5xICYmIGFu eWVuZCkpICYmCi0JCQkJKCpwcmVmaXhfZXEpIChxbiwgbGVucSwgdG4sIGxlbnQpKQorCQkJaWYg KGx0cmVlX2xhYmVsX21hdGNoKHFuLCBsZW5xLCB0biwgbGVudCwgcHJlZml4LCBjaSkpCiAJCQl7 Ci0KIAkJCQlpc29rID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTc2LDMxICs3Myw0MCBA QCBjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBpbnQgbGVuLAogfQog CiAvKgotICogQ2hlY2sgaWYgJ2EnIGlzIGEgcHJlZml4IG9mICdiJy4KKyAqIENoZWNrIGlmIHRo ZSBsYWJlbCBtYXRjaGVzIHRoZSBwcmVkaWNhdGUgc3RyaW5nLiBJZiAncHJlZml4JyBpcyB0cnVl LCB0aGVuCisgKiB0aGUgcHJlZGljYXRlIHN0cmluZyBpcyB0cmVhdGVkIGFzIGEgcHJlZml4LiBJ ZiAnY2knIGlzIHRydWUsIHRoZW4gdGhlCisgKiBwcmVkaWNhdGUgc3RyaW5nIGlzIGNhc2UtaW5z ZW5zaXRpdmUgKGFuZCBsb2NhbGUtYXdhcmUpLgogICovCiBib29sCi1sdHJlZV9wcmVmaXhfZXEo Y29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNoYXIgKmIsIHNpemVfdCBiX3N6KQor bHRyZWVfbGFiZWxfbWF0Y2goY29uc3QgY2hhciAqcHJlZCwgc2l6ZV90IHByZWRfbGVuLCBjb25z dCBjaGFyICpsYWJlbCwKKwkJCQkgIHNpemVfdCBsYWJlbF9sZW4sIGJvb2wgcHJlZml4LCBib29s IGNpKQogewotCWlmIChhX3N6ID4gYl9zeikKKwljaGFyCSAgICpmcHJlZDsJCQkvKiBjYXNlZm9s ZGVkIHByZWRpY2F0ZSAqLworCXNpemVfdAkJZnByZWRfbGVuOworCWNoYXIJICAgKmZsYWJlbDsJ CQkvKiBjYXNlZm9sZGVkIGxhYmVsICovCisJc2l6ZV90CQlmbGFiZWxfbGVuOworCWJvb2wJCXJl czsKKworCS8qIGZhc3QgcGF0aCBmb3IgYmluYXJ5IG1hdGNoIG9yIGJpbmFyeSBwcmVmaXggbWF0 Y2ggKi8KKwlpZiAoKHByZWRfbGVuID09IGxhYmVsX2xlbiB8fCAocHJlZml4ICYmIHByZWRfbGVu IDwgbGFiZWxfbGVuKSkgJiYKKwkJc3RybmNtcChwcmVkLCBsYWJlbCwgcHJlZF9sZW4pID09IDAp CisJCXJldHVybiB0cnVlOworCWVsc2UgaWYgKCFjaSkKIAkJcmV0dXJuIGZhbHNlOwotCWVsc2UK LQkJcmV0dXJuIChzdHJuY21wKGEsIGIsIGFfc3opID09IDApOwotfQogCi0vKgotICogQ2FzZS1p bnNlbnNpdGl2ZSBjaGVjayBpZiAnYScgaXMgYSBwcmVmaXggb2YgJ2InLgotICovCi1ib29sCi1s dHJlZV9wcmVmaXhfZXFfY2koY29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNoYXIg KmIsIHNpemVfdCBiX3N6KQotewotCWNoYXIJICAgKmFsID0gc3RyX3RvbG93ZXIoYSwgYV9zeiwg REVGQVVMVF9DT0xMQVRJT05fT0lEKTsKLQljaGFyCSAgICpibCA9IHN0cl90b2xvd2VyKGIsIGJf c3osIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7Ci0JYm9vbAkJcmVzOworCWZwcmVkID0gc3RyX3Rv bG93ZXIocHJlZCwgcHJlZF9sZW4sIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJZnByZWRfbGVu ID0gc3RybGVuKGZwcmVkKTsKKwlmbGFiZWwgPSBzdHJfdG9sb3dlcihsYWJlbCwgbGFiZWxfbGVu LCBERUZBVUxUX0NPTExBVElPTl9PSUQpOworCWZsYWJlbF9sZW4gPSBzdHJsZW4oZmxhYmVsKTsK IAotCXJlcyA9IChzdHJuY21wKGFsLCBibCwgYV9zeikgPT0gMCk7CisJaWYgKChmcHJlZF9sZW4g PT0gZmxhYmVsX2xlbiB8fCAocHJlZml4ICYmIGZwcmVkX2xlbiA8IGZsYWJlbF9sZW4pKSAmJgor CQlzdHJuY21wKGZwcmVkLCBmbGFiZWwsIGZwcmVkX2xlbikgPT0gMCkKKwkJcmVzID0gdHJ1ZTsK KwllbHNlCisJCXJlcyA9IGZhbHNlOwogCi0JcGZyZWUoYWwpOwotCXBmcmVlKGJsKTsKKwlwZnJl ZShmcHJlZCk7CisJcGZyZWUoZmxhYmVsKTsKIAogCXJldHVybiByZXM7CiB9CkBAIC0xMjUsMTkg KzEzMSwxNiBAQCBjaGVja0xldmVsKGxxdWVyeV9sZXZlbCAqY3VycSwgbHRyZWVfbGV2ZWwgKmN1 cnQpCiAKIAlmb3IgKGludCBpID0gMDsgaSA8IGN1cnEtPm51bXZhcjsgaSsrKQogCXsKLQkJbHRy ZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2VxOwotCi0JCXByZWZpeF9lcSA9IChjdXJ2YXItPmZs YWcgJiBMVkFSX0lOQ0FTRSkgPyBsdHJlZV9wcmVmaXhfZXFfY2kgOiBsdHJlZV9wcmVmaXhfZXE7 CisJCWJvb2wJCXByZWZpeCA9IChjdXJ2YXItPmZsYWcgJiBMVkFSX0FOWUVORCk7CisJCWJvb2wJ CWNpID0gKGN1cnZhci0+ZmxhZyAmIExWQVJfSU5DQVNFKTsKIAogCQlpZiAoY3VydmFyLT5mbGFn ICYgTFZBUl9TVUJMRVhFTUUpCiAJCXsKLQkJCWlmIChjb21wYXJlX3N1Ym5vZGUoY3VydCwgY3Vy dmFyLT5uYW1lLCBjdXJ2YXItPmxlbiwgcHJlZml4X2VxLAotCQkJCQkJCQkoY3VydmFyLT5mbGFn ICYgTFZBUl9BTllFTkQpKSkKKwkJCWlmIChjb21wYXJlX3N1Ym5vZGUoY3VydCwgY3VydmFyLT5u YW1lLCBjdXJ2YXItPmxlbiwgcHJlZml4LCBjaSkpCiAJCQkJcmV0dXJuIHN1Y2Nlc3M7CiAJCX0K LQkJZWxzZSBpZiAoKGN1cnZhci0+bGVuID09IGN1cnQtPmxlbiB8fAotCQkJCSAgKGN1cnQtPmxl biA+IGN1cnZhci0+bGVuICYmIChjdXJ2YXItPmZsYWcgJiBMVkFSX0FOWUVORCkpKSAmJgotCQkJ CSAoKnByZWZpeF9lcSkgKGN1cnZhci0+bmFtZSwgY3VydmFyLT5sZW4sIGN1cnQtPm5hbWUsIGN1 cnQtPmxlbikpCisJCWVsc2UgaWYgKGx0cmVlX2xhYmVsX21hdGNoKGN1cnZhci0+bmFtZSwgY3Vy dmFyLT5sZW4sIGN1cnQtPm5hbWUsCisJCQkJCQkJCSAgIGN1cnQtPmxlbiwgcHJlZml4LCBjaSkp CiAJCQlyZXR1cm4gc3VjY2VzczsKIAogCQljdXJ2YXIgPSBMVkFSX05FWFQoY3VydmFyKTsKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvbHRyZWUvbHRyZWUuaCBiL2NvbnRyaWIvbHRyZWUvbHRyZWUuaApp bmRleCBiMGRlZDQwZWJhOS4uMjI2YzFjYjIxMTUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbHRyZWUv bHRyZWUuaAorKysgYi9jb250cmliL2x0cmVlL2x0cmVlLmgKQEAgLTE1Nyw4ICsxNTcsNiBAQCB0 eXBlZGVmIHN0cnVjdAogCWNoYXIJCWRhdGFbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKIH0gbHR4 dHF1ZXJ5OwogCi10eXBlZGVmIGJvb2wgKCpsdHJlZV9wcmVmaXhfZXFfZnVuYykgKGNvbnN0IGNo YXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIHNpemVfdCk7Ci0KICNkZWZpbmUgSERSU0laRVFU CQlNQVhBTElHTihWQVJIRFJTWiArIHNpemVvZihpbnQzMikpCiAjZGVmaW5lIENPTVBVVEVTSVpF KHNpemUsbGVub2ZvcGVyYW5kKQkoIEhEUlNJWkVRVCArIChzaXplKSAqIHNpemVvZihJVEVNKSAr IChsZW5vZm9wZXJhbmQpICkKICNkZWZpbmUgTFRYVFFVRVJZX1RPT19CSUcoc2l6ZSxsZW5vZm9w ZXJhbmQpIFwKQEAgLTIwOSwxMSArMjA3LDExIEBAIGJvb2wJCWx0cmVlX2V4ZWN1dGUoSVRFTSAq Y3VyaXRlbSwgdm9pZCAqY2hlY2t2YWwsCiAKIGludAkJCWx0cmVlX2NvbXBhcmUoY29uc3QgbHRy ZWUgKmEsIGNvbnN0IGx0cmVlICpiKTsKIGJvb2wJCWlubmVyX2lzcGFyZW50KGNvbnN0IGx0cmVl ICpjLCBjb25zdCBsdHJlZSAqcCk7Ci1ib29sCQljb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwg KnQsIGNoYXIgKnFuLCBpbnQgbGVuLAotCQkJCQkJCWx0cmVlX3ByZWZpeF9lcV9mdW5jIHByZWZp eF9lcSwgYm9vbCBhbnllbmQpOworYm9vbAkJY29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0 LCBjaGFyICpxbiwgaW50IGxlbiwgYm9vbCBwcmVmaXgsIGJvb2wgY2kpOwogbHRyZWUJICAgKmxj YV9pbm5lcihsdHJlZSAqKmEsIGludCBsZW4pOwotYm9vbAkJbHRyZWVfcHJlZml4X2VxKGNvbnN0 IGNoYXIgKmEsIHNpemVfdCBhX3N6LCBjb25zdCBjaGFyICpiLCBzaXplX3QgYl9zeik7Ci1ib29s CQlsdHJlZV9wcmVmaXhfZXFfY2koY29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNo YXIgKmIsIHNpemVfdCBiX3N6KTsKK2Jvb2wJCWx0cmVlX2xhYmVsX21hdGNoKGNvbnN0IGNoYXIg KnByZWQsIHNpemVfdCBwcmVkX2xlbiwKKwkJCQkJCQkgIGNvbnN0IGNoYXIgKmxhYmVsLCBzaXpl X3QgbGFiZWxfbGVuLAorCQkJCQkJCSAgYm9vbCBwcmVmaXgsIGJvb2wgY2kpOwogCiAvKiBmbWdy IG1hY3JvcyBmb3IgbHRyZWUgb2JqZWN0cyAqLwogI2RlZmluZSBEYXR1bUdldEx0cmVlUChYKQkJ CSgobHRyZWUgKikgUEdfREVUT0FTVF9EQVRVTShYKSkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbHRy ZWUvbHR4dHF1ZXJ5X29wLmMgYi9jb250cmliL2x0cmVlL2x0eHRxdWVyeV9vcC5jCmluZGV4IDNk Y2JhYjJjNDg0Li4wZTY2MTJmZjc3YSAxMDA2NDQKLS0tIGEvY29udHJpYi9sdHJlZS9sdHh0cXVl cnlfb3AuYworKysgYi9jb250cmliL2x0cmVlL2x0eHRxdWVyeV9vcC5jCkBAIC01OCwxOSArNTgs MTggQEAgY2hlY2tjb25kaXRpb25fc3RyKHZvaWQgKmNoZWNrdmFsLCBJVEVNICp2YWwpCiAJbHRy ZWVfbGV2ZWwgKmxldmVsID0gTFRSRUVfRklSU1QoKChDSEtWQUwgKikgY2hlY2t2YWwpLT5ub2Rl KTsKIAlpbnQJCQl0bGVuID0gKChDSEtWQUwgKikgY2hlY2t2YWwpLT5ub2RlLT5udW1sZXZlbDsK IAljaGFyCSAgICpvcCA9ICgoQ0hLVkFMICopIGNoZWNrdmFsKS0+b3BlcmFuZCArIHZhbC0+ZGlz dGFuY2U7Ci0JbHRyZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2VxOworCWJvb2wJCXByZWZpeCA9 ICh2YWwtPmZsYWcgJiBMVkFSX0FOWUVORCk7CisJYm9vbAkJY2kgPSAodmFsLT5mbGFnICYgTFZB Ul9JTkNBU0UpOwogCi0JcHJlZml4X2VxID0gKHZhbC0+ZmxhZyAmIExWQVJfSU5DQVNFKSA/IGx0 cmVlX3ByZWZpeF9lcV9jaSA6IGx0cmVlX3ByZWZpeF9lcTsKIAl3aGlsZSAodGxlbiA+IDApCiAJ ewogCQlpZiAodmFsLT5mbGFnICYgTFZBUl9TVUJMRVhFTUUpCiAJCXsKLQkJCWlmIChjb21wYXJl X3N1Ym5vZGUobGV2ZWwsIG9wLCB2YWwtPmxlbmd0aCwgcHJlZml4X2VxLCAodmFsLT5mbGFnICYg TFZBUl9BTllFTkQpKSkKKwkJCWlmIChjb21wYXJlX3N1Ym5vZGUobGV2ZWwsIG9wLCB2YWwtPmxl bmd0aCwgcHJlZml4LCBjaSkpCiAJCQkJcmV0dXJuIHRydWU7CiAJCX0KLQkJZWxzZSBpZiAoKHZh bC0+bGVuZ3RoID09IGxldmVsLT5sZW4gfHwKLQkJCQkgIChsZXZlbC0+bGVuID4gdmFsLT5sZW5n dGggJiYgKHZhbC0+ZmxhZyAmIExWQVJfQU5ZRU5EKSkpICYmCi0JCQkJICgqcHJlZml4X2VxKSAo b3AsIHZhbC0+bGVuZ3RoLCBsZXZlbC0+bmFtZSwgbGV2ZWwtPmxlbikpCisJCWVsc2UgaWYgKGx0 cmVlX2xhYmVsX21hdGNoKG9wLCB2YWwtPmxlbmd0aCwgbGV2ZWwtPm5hbWUsIGxldmVsLT5sZW4s CisJCQkJCQkJCSAgIHByZWZpeCwgY2kpKQogCQkJcmV0dXJuIHRydWU7CiAKIAkJdGxlbi0tOwot LSAKMi40My4wCgo= --=-DBMsktyq7MqymywqRXsG Content-Disposition: attachment; filename="v16.1-0001-Fix-more-multibyte-issues-in-ltree.patch" Content-Type: text/x-patch; name="v16.1-0001-Fix-more-multibyte-issues-in-ltree.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAwYWMxNDYwMWRhNDk1YjU3MjE2ZjIzMGU0MmNjZjc0MjMxZDBmNjA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDEzIEZlYiAyMDI2IDEyOjQ4OjUyIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MTYuMV0gRml4 IG1vcmUgbXVsdGlieXRlIGlzc3VlcyBpbiBsdHJlZS4KCkNvbW1pdCA4NGQ1ZWZhN2UzIG1pc3Nl ZCBzb21lIG11bHRpYnl0ZSBpc3N1ZXMgY2F1c2VkIGJ5IHNob3J0LWNpcmN1aXQKbG9naWMgaW4g dGhlIGNhbGxlcnMuIFRoZSBjYWxsZXJzIGFzc3VtZWQgdGhhdCBpZiB0aGUgcHJlZGljYXRlIHN0 cmluZwppcyBsb25nZXIgdGhhbiB0aGUgbGFiZWwgc3RyaW5nLCB0aGVuIGl0IGNvdWxkbid0IHBv c3NpYmx5IGJlIGEgbWF0Y2gsCmJ1dCBpdCBjYW4gYmUgd2hlbiB1c2luZyBjYXNlLWluc2Vuc2l0 aXZlIG1hdGNoaW5nIChMVkFSX0lOQ0FTRSkgaWYKY2FzZWZvbGRpbmcgY2hhbmdlcyB0aGUgYnl0 ZSBsZW5ndGguCgpGaXggYnkgcmVmYWN0b3JpbmcgdG8gZ2V0IHJpZCBvZiB0aGUgc2hvcnQtY2ly Y3VpdCBsb2dpYyBhcyB3ZWxsIGFzCnRoZSBmdW5jdGlvbiBwb2ludGVyLCBhbmQgY29uc29saWRh dGUgdGhlIGxvZ2ljIGluIGEgcmVwbGFjZW1lbnQKZnVuY3Rpb24gbHRyZWVfbGFiZWxfbWF0Y2go KS4KCkJhY2twYXRjaC10aHJvdWdoOiAxNAotLS0KIGNvbnRyaWIvbHRyZWUvbHF1ZXJ5X29wLmMg ICAgfCA2NSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGNvbnRyaWIvbHRy ZWUvbHRyZWUuaCAgICAgICAgfCAxMCArKystLS0KIGNvbnRyaWIvbHRyZWUvbHR4dHF1ZXJ5X29w LmMgfCAxMSArKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgNDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9sdHJlZS9scXVlcnlfb3AuYyBiL2NvbnRy aWIvbHRyZWUvbHF1ZXJ5X29wLmMKaW5kZXggNzAzMDg1YzY3ZGUuLjRkYzYxMGY1MjExIDEwMDY0 NAotLS0gYS9jb250cmliL2x0cmVlL2xxdWVyeV9vcC5jCisrKyBiL2NvbnRyaWIvbHRyZWUvbHF1 ZXJ5X29wLmMKQEAgLTQxLDggKzQxLDcgQEAgZ2V0bGV4ZW1lKGNoYXIgKnN0YXJ0LCBjaGFyICpl bmQsIGludCAqbGVuKQogfQogCiBib29sCi1jb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQs IGNoYXIgKnFuLCBpbnQgbGVuLAotCQkJCWx0cmVlX3ByZWZpeF9lcV9mdW5jIHByZWZpeF9lcSwg Ym9vbCBhbnllbmQpCitjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBp bnQgbGVuLCBib29sIHByZWZpeCwgYm9vbCBjaSkKIHsKIAljaGFyCSAgICplbmR0ID0gdC0+bmFt ZSArIHQtPmxlbjsKIAljaGFyCSAgICplbmRxID0gcW4gKyBsZW47CkBAIC01NywxMCArNTYsOCBA QCBjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBpbnQgbGVuLAogCQlp c29rID0gZmFsc2U7CiAJCXdoaWxlICgodG4gPSBnZXRsZXhlbWUodG4sIGVuZHQsICZsZW50KSkg IT0gTlVMTCkKIAkJewotCQkJaWYgKChsZW50ID09IGxlbnEgfHwgKGxlbnQgPiBsZW5xICYmIGFu eWVuZCkpICYmCi0JCQkJKCpwcmVmaXhfZXEpIChxbiwgbGVucSwgdG4sIGxlbnQpKQorCQkJaWYg KGx0cmVlX2xhYmVsX21hdGNoKHFuLCBsZW5xLCB0biwgbGVudCwgcHJlZml4LCBjaSkpCiAJCQl7 Ci0KIAkJCQlpc29rID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTc2LDMxICs3Myw0MCBA QCBjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBpbnQgbGVuLAogfQog CiAvKgotICogQ2hlY2sgaWYgJ2EnIGlzIGEgcHJlZml4IG9mICdiJy4KKyAqIENoZWNrIGlmIHRo ZSBsYWJlbCBtYXRjaGVzIHRoZSBwcmVkaWNhdGUgc3RyaW5nLiBJZiAncHJlZml4JyBpcyB0cnVl LCB0aGVuCisgKiB0aGUgcHJlZGljYXRlIHN0cmluZyBpcyB0cmVhdGVkIGFzIGEgcHJlZml4LiBJ ZiAnY2knIGlzIHRydWUsIHRoZW4gdGhlCisgKiBwcmVkaWNhdGUgc3RyaW5nIGlzIGNhc2UtaW5z ZW5zaXRpdmUgKGFuZCBsb2NhbGUtYXdhcmUpLgogICovCiBib29sCi1sdHJlZV9wcmVmaXhfZXEo Y29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNoYXIgKmIsIHNpemVfdCBiX3N6KQor bHRyZWVfbGFiZWxfbWF0Y2goY29uc3QgY2hhciAqcHJlZCwgc2l6ZV90IHByZWRfbGVuLCBjb25z dCBjaGFyICpsYWJlbCwKKwkJCQkgIHNpemVfdCBsYWJlbF9sZW4sIGJvb2wgcHJlZml4LCBib29s IGNpKQogewotCWlmIChhX3N6ID4gYl9zeikKKwljaGFyCSAgICpmcHJlZDsJCQkvKiBjYXNlZm9s ZGVkIHByZWRpY2F0ZSAqLworCXNpemVfdAkJZnByZWRfbGVuOworCWNoYXIJICAgKmZsYWJlbDsJ CQkvKiBjYXNlZm9sZGVkIGxhYmVsICovCisJc2l6ZV90CQlmbGFiZWxfbGVuOworCWJvb2wJCXJl czsKKworCS8qIGZhc3QgcGF0aCBmb3IgYmluYXJ5IG1hdGNoIG9yIGJpbmFyeSBwcmVmaXggbWF0 Y2ggKi8KKwlpZiAoKHByZWRfbGVuID09IGxhYmVsX2xlbiB8fCAocHJlZml4ICYmIHByZWRfbGVu IDwgbGFiZWxfbGVuKSkgJiYKKwkJc3RybmNtcChwcmVkLCBsYWJlbCwgcHJlZF9sZW4pID09IDAp CisJCXJldHVybiB0cnVlOworCWVsc2UgaWYgKCFjaSkKIAkJcmV0dXJuIGZhbHNlOwotCWVsc2UK LQkJcmV0dXJuIChzdHJuY21wKGEsIGIsIGFfc3opID09IDApOwotfQogCi0vKgotICogQ2FzZS1p bnNlbnNpdGl2ZSBjaGVjayBpZiAnYScgaXMgYSBwcmVmaXggb2YgJ2InLgotICovCi1ib29sCi1s dHJlZV9wcmVmaXhfZXFfY2koY29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNoYXIg KmIsIHNpemVfdCBiX3N6KQotewotCWNoYXIJICAgKmFsID0gc3RyX3RvbG93ZXIoYSwgYV9zeiwg REVGQVVMVF9DT0xMQVRJT05fT0lEKTsKLQljaGFyCSAgICpibCA9IHN0cl90b2xvd2VyKGIsIGJf c3osIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7Ci0JYm9vbAkJcmVzOworCWZwcmVkID0gc3RyX3Rv bG93ZXIocHJlZCwgcHJlZF9sZW4sIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJZnByZWRfbGVu ID0gc3RybGVuKGZwcmVkKTsKKwlmbGFiZWwgPSBzdHJfdG9sb3dlcihsYWJlbCwgbGFiZWxfbGVu LCBERUZBVUxUX0NPTExBVElPTl9PSUQpOworCWZsYWJlbF9sZW4gPSBzdHJsZW4oZmxhYmVsKTsK IAotCXJlcyA9IChzdHJuY21wKGFsLCBibCwgYV9zeikgPT0gMCk7CisJaWYgKChmcHJlZF9sZW4g PT0gZmxhYmVsX2xlbiB8fCAocHJlZml4ICYmIGZwcmVkX2xlbiA8IGZsYWJlbF9sZW4pKSAmJgor CQlzdHJuY21wKGZwcmVkLCBmbGFiZWwsIGZwcmVkX2xlbikgPT0gMCkKKwkJcmVzID0gdHJ1ZTsK KwllbHNlCisJCXJlcyA9IGZhbHNlOwogCi0JcGZyZWUoYWwpOwotCXBmcmVlKGJsKTsKKwlwZnJl ZShmcHJlZCk7CisJcGZyZWUoZmxhYmVsKTsKIAogCXJldHVybiByZXM7CiB9CkBAIC0xMjUsMTkg KzEzMSwxNiBAQCBjaGVja0xldmVsKGxxdWVyeV9sZXZlbCAqY3VycSwgbHRyZWVfbGV2ZWwgKmN1 cnQpCiAKIAlmb3IgKGludCBpID0gMDsgaSA8IGN1cnEtPm51bXZhcjsgaSsrKQogCXsKLQkJbHRy ZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2VxOwotCi0JCXByZWZpeF9lcSA9IChjdXJ2YXItPmZs YWcgJiBMVkFSX0lOQ0FTRSkgPyBsdHJlZV9wcmVmaXhfZXFfY2kgOiBsdHJlZV9wcmVmaXhfZXE7 CisJCWJvb2wJCXByZWZpeCA9IChjdXJ2YXItPmZsYWcgJiBMVkFSX0FOWUVORCk7CisJCWJvb2wJ CWNpID0gKGN1cnZhci0+ZmxhZyAmIExWQVJfSU5DQVNFKTsKIAogCQlpZiAoY3VydmFyLT5mbGFn ICYgTFZBUl9TVUJMRVhFTUUpCiAJCXsKLQkJCWlmIChjb21wYXJlX3N1Ym5vZGUoY3VydCwgY3Vy dmFyLT5uYW1lLCBjdXJ2YXItPmxlbiwgcHJlZml4X2VxLAotCQkJCQkJCQkoY3VydmFyLT5mbGFn ICYgTFZBUl9BTllFTkQpKSkKKwkJCWlmIChjb21wYXJlX3N1Ym5vZGUoY3VydCwgY3VydmFyLT5u YW1lLCBjdXJ2YXItPmxlbiwgcHJlZml4LCBjaSkpCiAJCQkJcmV0dXJuIHN1Y2Nlc3M7CiAJCX0K LQkJZWxzZSBpZiAoKGN1cnZhci0+bGVuID09IGN1cnQtPmxlbiB8fAotCQkJCSAgKGN1cnQtPmxl biA+IGN1cnZhci0+bGVuICYmIChjdXJ2YXItPmZsYWcgJiBMVkFSX0FOWUVORCkpKSAmJgotCQkJ CSAoKnByZWZpeF9lcSkgKGN1cnZhci0+bmFtZSwgY3VydmFyLT5sZW4sIGN1cnQtPm5hbWUsIGN1 cnQtPmxlbikpCisJCWVsc2UgaWYgKGx0cmVlX2xhYmVsX21hdGNoKGN1cnZhci0+bmFtZSwgY3Vy dmFyLT5sZW4sIGN1cnQtPm5hbWUsCisJCQkJCQkJCSAgIGN1cnQtPmxlbiwgcHJlZml4LCBjaSkp CiAJCQlyZXR1cm4gc3VjY2VzczsKIAogCQljdXJ2YXIgPSBMVkFSX05FWFQoY3VydmFyKTsKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvbHRyZWUvbHRyZWUuaCBiL2NvbnRyaWIvbHRyZWUvbHRyZWUuaApp bmRleCBiMGRlZDQwZWJhOS4uMjI2YzFjYjIxMTUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbHRyZWUv bHRyZWUuaAorKysgYi9jb250cmliL2x0cmVlL2x0cmVlLmgKQEAgLTE1Nyw4ICsxNTcsNiBAQCB0 eXBlZGVmIHN0cnVjdAogCWNoYXIJCWRhdGFbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKIH0gbHR4 dHF1ZXJ5OwogCi10eXBlZGVmIGJvb2wgKCpsdHJlZV9wcmVmaXhfZXFfZnVuYykgKGNvbnN0IGNo YXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIHNpemVfdCk7Ci0KICNkZWZpbmUgSERSU0laRVFU CQlNQVhBTElHTihWQVJIRFJTWiArIHNpemVvZihpbnQzMikpCiAjZGVmaW5lIENPTVBVVEVTSVpF KHNpemUsbGVub2ZvcGVyYW5kKQkoIEhEUlNJWkVRVCArIChzaXplKSAqIHNpemVvZihJVEVNKSAr IChsZW5vZm9wZXJhbmQpICkKICNkZWZpbmUgTFRYVFFVRVJZX1RPT19CSUcoc2l6ZSxsZW5vZm9w ZXJhbmQpIFwKQEAgLTIwOSwxMSArMjA3LDExIEBAIGJvb2wJCWx0cmVlX2V4ZWN1dGUoSVRFTSAq Y3VyaXRlbSwgdm9pZCAqY2hlY2t2YWwsCiAKIGludAkJCWx0cmVlX2NvbXBhcmUoY29uc3QgbHRy ZWUgKmEsIGNvbnN0IGx0cmVlICpiKTsKIGJvb2wJCWlubmVyX2lzcGFyZW50KGNvbnN0IGx0cmVl ICpjLCBjb25zdCBsdHJlZSAqcCk7Ci1ib29sCQljb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwg KnQsIGNoYXIgKnFuLCBpbnQgbGVuLAotCQkJCQkJCWx0cmVlX3ByZWZpeF9lcV9mdW5jIHByZWZp eF9lcSwgYm9vbCBhbnllbmQpOworYm9vbAkJY29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0 LCBjaGFyICpxbiwgaW50IGxlbiwgYm9vbCBwcmVmaXgsIGJvb2wgY2kpOwogbHRyZWUJICAgKmxj YV9pbm5lcihsdHJlZSAqKmEsIGludCBsZW4pOwotYm9vbAkJbHRyZWVfcHJlZml4X2VxKGNvbnN0 IGNoYXIgKmEsIHNpemVfdCBhX3N6LCBjb25zdCBjaGFyICpiLCBzaXplX3QgYl9zeik7Ci1ib29s CQlsdHJlZV9wcmVmaXhfZXFfY2koY29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNo YXIgKmIsIHNpemVfdCBiX3N6KTsKK2Jvb2wJCWx0cmVlX2xhYmVsX21hdGNoKGNvbnN0IGNoYXIg KnByZWQsIHNpemVfdCBwcmVkX2xlbiwKKwkJCQkJCQkgIGNvbnN0IGNoYXIgKmxhYmVsLCBzaXpl X3QgbGFiZWxfbGVuLAorCQkJCQkJCSAgYm9vbCBwcmVmaXgsIGJvb2wgY2kpOwogCiAvKiBmbWdy IG1hY3JvcyBmb3IgbHRyZWUgb2JqZWN0cyAqLwogI2RlZmluZSBEYXR1bUdldEx0cmVlUChYKQkJ CSgobHRyZWUgKikgUEdfREVUT0FTVF9EQVRVTShYKSkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbHRy ZWUvbHR4dHF1ZXJ5X29wLmMgYi9jb250cmliL2x0cmVlL2x0eHRxdWVyeV9vcC5jCmluZGV4IDNk Y2JhYjJjNDg0Li4wZTY2MTJmZjc3YSAxMDA2NDQKLS0tIGEvY29udHJpYi9sdHJlZS9sdHh0cXVl cnlfb3AuYworKysgYi9jb250cmliL2x0cmVlL2x0eHRxdWVyeV9vcC5jCkBAIC01OCwxOSArNTgs MTggQEAgY2hlY2tjb25kaXRpb25fc3RyKHZvaWQgKmNoZWNrdmFsLCBJVEVNICp2YWwpCiAJbHRy ZWVfbGV2ZWwgKmxldmVsID0gTFRSRUVfRklSU1QoKChDSEtWQUwgKikgY2hlY2t2YWwpLT5ub2Rl KTsKIAlpbnQJCQl0bGVuID0gKChDSEtWQUwgKikgY2hlY2t2YWwpLT5ub2RlLT5udW1sZXZlbDsK IAljaGFyCSAgICpvcCA9ICgoQ0hLVkFMICopIGNoZWNrdmFsKS0+b3BlcmFuZCArIHZhbC0+ZGlz dGFuY2U7Ci0JbHRyZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2VxOworCWJvb2wJCXByZWZpeCA9 ICh2YWwtPmZsYWcgJiBMVkFSX0FOWUVORCk7CisJYm9vbAkJY2kgPSAodmFsLT5mbGFnICYgTFZB Ul9JTkNBU0UpOwogCi0JcHJlZml4X2VxID0gKHZhbC0+ZmxhZyAmIExWQVJfSU5DQVNFKSA/IGx0 cmVlX3ByZWZpeF9lcV9jaSA6IGx0cmVlX3ByZWZpeF9lcTsKIAl3aGlsZSAodGxlbiA+IDApCiAJ ewogCQlpZiAodmFsLT5mbGFnICYgTFZBUl9TVUJMRVhFTUUpCiAJCXsKLQkJCWlmIChjb21wYXJl X3N1Ym5vZGUobGV2ZWwsIG9wLCB2YWwtPmxlbmd0aCwgcHJlZml4X2VxLCAodmFsLT5mbGFnICYg TFZBUl9BTllFTkQpKSkKKwkJCWlmIChjb21wYXJlX3N1Ym5vZGUobGV2ZWwsIG9wLCB2YWwtPmxl bmd0aCwgcHJlZml4LCBjaSkpCiAJCQkJcmV0dXJuIHRydWU7CiAJCX0KLQkJZWxzZSBpZiAoKHZh bC0+bGVuZ3RoID09IGxldmVsLT5sZW4gfHwKLQkJCQkgIChsZXZlbC0+bGVuID4gdmFsLT5sZW5n dGggJiYgKHZhbC0+ZmxhZyAmIExWQVJfQU5ZRU5EKSkpICYmCi0JCQkJICgqcHJlZml4X2VxKSAo b3AsIHZhbC0+bGVuZ3RoLCBsZXZlbC0+bmFtZSwgbGV2ZWwtPmxlbikpCisJCWVsc2UgaWYgKGx0 cmVlX2xhYmVsX21hdGNoKG9wLCB2YWwtPmxlbmd0aCwgbGV2ZWwtPm5hbWUsIGxldmVsLT5sZW4s CisJCQkJCQkJCSAgIHByZWZpeCwgY2kpKQogCQkJcmV0dXJuIHRydWU7CiAKIAkJdGxlbi0tOwot LSAKMi40My4wCgo= --=-DBMsktyq7MqymywqRXsG Content-Disposition: attachment; filename="v15.1-0001-Fix-more-multibyte-issues-in-ltree.patch" Content-Type: text/x-patch; name="v15.1-0001-Fix-more-multibyte-issues-in-ltree.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBhYWEwZjE0YzgyMmRmOGViOTEyNDkyMzNjOThkMWJiNGU0YTQ4MDdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDEzIEZlYiAyMDI2IDEyOjQ4OjUyIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MTUuMV0gRml4 IG1vcmUgbXVsdGlieXRlIGlzc3VlcyBpbiBsdHJlZS4KCkNvbW1pdCA4NGQ1ZWZhN2UzIG1pc3Nl ZCBzb21lIG11bHRpYnl0ZSBpc3N1ZXMgY2F1c2VkIGJ5IHNob3J0LWNpcmN1aXQKbG9naWMgaW4g dGhlIGNhbGxlcnMuIFRoZSBjYWxsZXJzIGFzc3VtZWQgdGhhdCBpZiB0aGUgcHJlZGljYXRlIHN0 cmluZwppcyBsb25nZXIgdGhhbiB0aGUgbGFiZWwgc3RyaW5nLCB0aGVuIGl0IGNvdWxkbid0IHBv c3NpYmx5IGJlIGEgbWF0Y2gsCmJ1dCBpdCBjYW4gYmUgd2hlbiB1c2luZyBjYXNlLWluc2Vuc2l0 aXZlIG1hdGNoaW5nIChMVkFSX0lOQ0FTRSkgaWYKY2FzZWZvbGRpbmcgY2hhbmdlcyB0aGUgYnl0 ZSBsZW5ndGguCgpGaXggYnkgcmVmYWN0b3JpbmcgdG8gZ2V0IHJpZCBvZiB0aGUgc2hvcnQtY2ly Y3VpdCBsb2dpYyBhcyB3ZWxsIGFzCnRoZSBmdW5jdGlvbiBwb2ludGVyLCBhbmQgY29uc29saWRh dGUgdGhlIGxvZ2ljIGluIGEgcmVwbGFjZW1lbnQKZnVuY3Rpb24gbHRyZWVfbGFiZWxfbWF0Y2go KS4KCkJhY2twYXRjaC10aHJvdWdoOiAxNAotLS0KIGNvbnRyaWIvbHRyZWUvbHF1ZXJ5X29wLmMg ICAgfCA2NSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGNvbnRyaWIvbHRy ZWUvbHRyZWUuaCAgICAgICAgfCAxMCArKystLS0KIGNvbnRyaWIvbHRyZWUvbHR4dHF1ZXJ5X29w LmMgfCAxMSArKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgNDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9sdHJlZS9scXVlcnlfb3AuYyBiL2NvbnRy aWIvbHRyZWUvbHF1ZXJ5X29wLmMKaW5kZXggNDYwMTlhMGU4M2EuLjU0MGI2NzhiMDM4IDEwMDY0 NAotLS0gYS9jb250cmliL2x0cmVlL2xxdWVyeV9vcC5jCisrKyBiL2NvbnRyaWIvbHRyZWUvbHF1 ZXJ5X29wLmMKQEAgLTQxLDggKzQxLDcgQEAgZ2V0bGV4ZW1lKGNoYXIgKnN0YXJ0LCBjaGFyICpl bmQsIGludCAqbGVuKQogfQogCiBib29sCi1jb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQs IGNoYXIgKnFuLCBpbnQgbGVuLAotCQkJCWx0cmVlX3ByZWZpeF9lcV9mdW5jIHByZWZpeF9lcSwg Ym9vbCBhbnllbmQpCitjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBp bnQgbGVuLCBib29sIHByZWZpeCwgYm9vbCBjaSkKIHsKIAljaGFyCSAgICplbmR0ID0gdC0+bmFt ZSArIHQtPmxlbjsKIAljaGFyCSAgICplbmRxID0gcW4gKyBsZW47CkBAIC01NywxMCArNTYsOCBA QCBjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBpbnQgbGVuLAogCQlp c29rID0gZmFsc2U7CiAJCXdoaWxlICgodG4gPSBnZXRsZXhlbWUodG4sIGVuZHQsICZsZW50KSkg IT0gTlVMTCkKIAkJewotCQkJaWYgKChsZW50ID09IGxlbnEgfHwgKGxlbnQgPiBsZW5xICYmIGFu eWVuZCkpICYmCi0JCQkJKCpwcmVmaXhfZXEpIChxbiwgbGVucSwgdG4sIGxlbnQpKQorCQkJaWYg KGx0cmVlX2xhYmVsX21hdGNoKHFuLCBsZW5xLCB0biwgbGVudCwgcHJlZml4LCBjaSkpCiAJCQl7 Ci0KIAkJCQlpc29rID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTc2LDMxICs3Myw0MCBA QCBjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBpbnQgbGVuLAogfQog CiAvKgotICogQ2hlY2sgaWYgJ2EnIGlzIGEgcHJlZml4IG9mICdiJy4KKyAqIENoZWNrIGlmIHRo ZSBsYWJlbCBtYXRjaGVzIHRoZSBwcmVkaWNhdGUgc3RyaW5nLiBJZiAncHJlZml4JyBpcyB0cnVl LCB0aGVuCisgKiB0aGUgcHJlZGljYXRlIHN0cmluZyBpcyB0cmVhdGVkIGFzIGEgcHJlZml4LiBJ ZiAnY2knIGlzIHRydWUsIHRoZW4gdGhlCisgKiBwcmVkaWNhdGUgc3RyaW5nIGlzIGNhc2UtaW5z ZW5zaXRpdmUgKGFuZCBsb2NhbGUtYXdhcmUpLgogICovCiBib29sCi1sdHJlZV9wcmVmaXhfZXEo Y29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNoYXIgKmIsIHNpemVfdCBiX3N6KQor bHRyZWVfbGFiZWxfbWF0Y2goY29uc3QgY2hhciAqcHJlZCwgc2l6ZV90IHByZWRfbGVuLCBjb25z dCBjaGFyICpsYWJlbCwKKwkJCQkgIHNpemVfdCBsYWJlbF9sZW4sIGJvb2wgcHJlZml4LCBib29s IGNpKQogewotCWlmIChhX3N6ID4gYl9zeikKKwljaGFyCSAgICpmcHJlZDsJCQkvKiBjYXNlZm9s ZGVkIHByZWRpY2F0ZSAqLworCXNpemVfdAkJZnByZWRfbGVuOworCWNoYXIJICAgKmZsYWJlbDsJ CQkvKiBjYXNlZm9sZGVkIGxhYmVsICovCisJc2l6ZV90CQlmbGFiZWxfbGVuOworCWJvb2wJCXJl czsKKworCS8qIGZhc3QgcGF0aCBmb3IgYmluYXJ5IG1hdGNoIG9yIGJpbmFyeSBwcmVmaXggbWF0 Y2ggKi8KKwlpZiAoKHByZWRfbGVuID09IGxhYmVsX2xlbiB8fCAocHJlZml4ICYmIHByZWRfbGVu IDwgbGFiZWxfbGVuKSkgJiYKKwkJc3RybmNtcChwcmVkLCBsYWJlbCwgcHJlZF9sZW4pID09IDAp CisJCXJldHVybiB0cnVlOworCWVsc2UgaWYgKCFjaSkKIAkJcmV0dXJuIGZhbHNlOwotCWVsc2UK LQkJcmV0dXJuIChzdHJuY21wKGEsIGIsIGFfc3opID09IDApOwotfQogCi0vKgotICogQ2FzZS1p bnNlbnNpdGl2ZSBjaGVjayBpZiAnYScgaXMgYSBwcmVmaXggb2YgJ2InLgotICovCi1ib29sCi1s dHJlZV9wcmVmaXhfZXFfY2koY29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNoYXIg KmIsIHNpemVfdCBiX3N6KQotewotCWNoYXIJICAgKmFsID0gc3RyX3RvbG93ZXIoYSwgYV9zeiwg REVGQVVMVF9DT0xMQVRJT05fT0lEKTsKLQljaGFyCSAgICpibCA9IHN0cl90b2xvd2VyKGIsIGJf c3osIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7Ci0JYm9vbAkJcmVzOworCWZwcmVkID0gc3RyX3Rv bG93ZXIocHJlZCwgcHJlZF9sZW4sIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJZnByZWRfbGVu ID0gc3RybGVuKGZwcmVkKTsKKwlmbGFiZWwgPSBzdHJfdG9sb3dlcihsYWJlbCwgbGFiZWxfbGVu LCBERUZBVUxUX0NPTExBVElPTl9PSUQpOworCWZsYWJlbF9sZW4gPSBzdHJsZW4oZmxhYmVsKTsK IAotCXJlcyA9IChzdHJuY21wKGFsLCBibCwgYV9zeikgPT0gMCk7CisJaWYgKChmcHJlZF9sZW4g PT0gZmxhYmVsX2xlbiB8fCAocHJlZml4ICYmIGZwcmVkX2xlbiA8IGZsYWJlbF9sZW4pKSAmJgor CQlzdHJuY21wKGZwcmVkLCBmbGFiZWwsIGZwcmVkX2xlbikgPT0gMCkKKwkJcmVzID0gdHJ1ZTsK KwllbHNlCisJCXJlcyA9IGZhbHNlOwogCi0JcGZyZWUoYWwpOwotCXBmcmVlKGJsKTsKKwlwZnJl ZShmcHJlZCk7CisJcGZyZWUoZmxhYmVsKTsKIAogCXJldHVybiByZXM7CiB9CkBAIC0xMjUsMTkg KzEzMSwxNiBAQCBjaGVja0xldmVsKGxxdWVyeV9sZXZlbCAqY3VycSwgbHRyZWVfbGV2ZWwgKmN1 cnQpCiAKIAlmb3IgKGludCBpID0gMDsgaSA8IGN1cnEtPm51bXZhcjsgaSsrKQogCXsKLQkJbHRy ZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2VxOwotCi0JCXByZWZpeF9lcSA9IChjdXJ2YXItPmZs YWcgJiBMVkFSX0lOQ0FTRSkgPyBsdHJlZV9wcmVmaXhfZXFfY2kgOiBsdHJlZV9wcmVmaXhfZXE7 CisJCWJvb2wJCXByZWZpeCA9IChjdXJ2YXItPmZsYWcgJiBMVkFSX0FOWUVORCk7CisJCWJvb2wJ CWNpID0gKGN1cnZhci0+ZmxhZyAmIExWQVJfSU5DQVNFKTsKIAogCQlpZiAoY3VydmFyLT5mbGFn ICYgTFZBUl9TVUJMRVhFTUUpCiAJCXsKLQkJCWlmIChjb21wYXJlX3N1Ym5vZGUoY3VydCwgY3Vy dmFyLT5uYW1lLCBjdXJ2YXItPmxlbiwgcHJlZml4X2VxLAotCQkJCQkJCQkoY3VydmFyLT5mbGFn ICYgTFZBUl9BTllFTkQpKSkKKwkJCWlmIChjb21wYXJlX3N1Ym5vZGUoY3VydCwgY3VydmFyLT5u YW1lLCBjdXJ2YXItPmxlbiwgcHJlZml4LCBjaSkpCiAJCQkJcmV0dXJuIHN1Y2Nlc3M7CiAJCX0K LQkJZWxzZSBpZiAoKGN1cnZhci0+bGVuID09IGN1cnQtPmxlbiB8fAotCQkJCSAgKGN1cnQtPmxl biA+IGN1cnZhci0+bGVuICYmIChjdXJ2YXItPmZsYWcgJiBMVkFSX0FOWUVORCkpKSAmJgotCQkJ CSAoKnByZWZpeF9lcSkgKGN1cnZhci0+bmFtZSwgY3VydmFyLT5sZW4sIGN1cnQtPm5hbWUsIGN1 cnQtPmxlbikpCisJCWVsc2UgaWYgKGx0cmVlX2xhYmVsX21hdGNoKGN1cnZhci0+bmFtZSwgY3Vy dmFyLT5sZW4sIGN1cnQtPm5hbWUsCisJCQkJCQkJCSAgIGN1cnQtPmxlbiwgcHJlZml4LCBjaSkp CiAJCQlyZXR1cm4gc3VjY2VzczsKIAogCQljdXJ2YXIgPSBMVkFSX05FWFQoY3VydmFyKTsKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvbHRyZWUvbHRyZWUuaCBiL2NvbnRyaWIvbHRyZWUvbHRyZWUuaApp bmRleCBhMzdlZTZiMmM2Ny4uMzY3M2I5ZDc0YzggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbHRyZWUv bHRyZWUuaAorKysgYi9jb250cmliL2x0cmVlL2x0cmVlLmgKQEAgLTE1Nyw4ICsxNTcsNiBAQCB0 eXBlZGVmIHN0cnVjdAogCWNoYXIJCWRhdGFbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKIH0gbHR4 dHF1ZXJ5OwogCi10eXBlZGVmIGJvb2wgKCpsdHJlZV9wcmVmaXhfZXFfZnVuYykgKGNvbnN0IGNo YXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIHNpemVfdCk7Ci0KICNkZWZpbmUgSERSU0laRVFU CQlNQVhBTElHTihWQVJIRFJTWiArIHNpemVvZihpbnQzMikpCiAjZGVmaW5lIENPTVBVVEVTSVpF KHNpemUsbGVub2ZvcGVyYW5kKQkoIEhEUlNJWkVRVCArIChzaXplKSAqIHNpemVvZihJVEVNKSAr IChsZW5vZm9wZXJhbmQpICkKICNkZWZpbmUgTFRYVFFVRVJZX1RPT19CSUcoc2l6ZSxsZW5vZm9w ZXJhbmQpIFwKQEAgLTIwOSwxMSArMjA3LDExIEBAIGJvb2wJCWx0cmVlX2V4ZWN1dGUoSVRFTSAq Y3VyaXRlbSwgdm9pZCAqY2hlY2t2YWwsCiAKIGludAkJCWx0cmVlX2NvbXBhcmUoY29uc3QgbHRy ZWUgKmEsIGNvbnN0IGx0cmVlICpiKTsKIGJvb2wJCWlubmVyX2lzcGFyZW50KGNvbnN0IGx0cmVl ICpjLCBjb25zdCBsdHJlZSAqcCk7Ci1ib29sCQljb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwg KnQsIGNoYXIgKnFuLCBpbnQgbGVuLAotCQkJCQkJCWx0cmVlX3ByZWZpeF9lcV9mdW5jIHByZWZp eF9lcSwgYm9vbCBhbnllbmQpOworYm9vbAkJY29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0 LCBjaGFyICpxbiwgaW50IGxlbiwgYm9vbCBwcmVmaXgsIGJvb2wgY2kpOwogbHRyZWUJICAgKmxj YV9pbm5lcihsdHJlZSAqKmEsIGludCBsZW4pOwotYm9vbAkJbHRyZWVfcHJlZml4X2VxKGNvbnN0 IGNoYXIgKmEsIHNpemVfdCBhX3N6LCBjb25zdCBjaGFyICpiLCBzaXplX3QgYl9zeik7Ci1ib29s CQlsdHJlZV9wcmVmaXhfZXFfY2koY29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNo YXIgKmIsIHNpemVfdCBiX3N6KTsKK2Jvb2wJCWx0cmVlX2xhYmVsX21hdGNoKGNvbnN0IGNoYXIg KnByZWQsIHNpemVfdCBwcmVkX2xlbiwKKwkJCQkJCQkgIGNvbnN0IGNoYXIgKmxhYmVsLCBzaXpl X3QgbGFiZWxfbGVuLAorCQkJCQkJCSAgYm9vbCBwcmVmaXgsIGJvb2wgY2kpOwogCiAvKiBmbWdy IG1hY3JvcyBmb3IgbHRyZWUgb2JqZWN0cyAqLwogI2RlZmluZSBEYXR1bUdldEx0cmVlUChYKQkJ CSgobHRyZWUgKikgUEdfREVUT0FTVF9EQVRVTShYKSkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbHRy ZWUvbHR4dHF1ZXJ5X29wLmMgYi9jb250cmliL2x0cmVlL2x0eHRxdWVyeV9vcC5jCmluZGV4IDNk Y2JhYjJjNDg0Li4wZTY2MTJmZjc3YSAxMDA2NDQKLS0tIGEvY29udHJpYi9sdHJlZS9sdHh0cXVl cnlfb3AuYworKysgYi9jb250cmliL2x0cmVlL2x0eHRxdWVyeV9vcC5jCkBAIC01OCwxOSArNTgs MTggQEAgY2hlY2tjb25kaXRpb25fc3RyKHZvaWQgKmNoZWNrdmFsLCBJVEVNICp2YWwpCiAJbHRy ZWVfbGV2ZWwgKmxldmVsID0gTFRSRUVfRklSU1QoKChDSEtWQUwgKikgY2hlY2t2YWwpLT5ub2Rl KTsKIAlpbnQJCQl0bGVuID0gKChDSEtWQUwgKikgY2hlY2t2YWwpLT5ub2RlLT5udW1sZXZlbDsK IAljaGFyCSAgICpvcCA9ICgoQ0hLVkFMICopIGNoZWNrdmFsKS0+b3BlcmFuZCArIHZhbC0+ZGlz dGFuY2U7Ci0JbHRyZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2VxOworCWJvb2wJCXByZWZpeCA9 ICh2YWwtPmZsYWcgJiBMVkFSX0FOWUVORCk7CisJYm9vbAkJY2kgPSAodmFsLT5mbGFnICYgTFZB Ul9JTkNBU0UpOwogCi0JcHJlZml4X2VxID0gKHZhbC0+ZmxhZyAmIExWQVJfSU5DQVNFKSA/IGx0 cmVlX3ByZWZpeF9lcV9jaSA6IGx0cmVlX3ByZWZpeF9lcTsKIAl3aGlsZSAodGxlbiA+IDApCiAJ ewogCQlpZiAodmFsLT5mbGFnICYgTFZBUl9TVUJMRVhFTUUpCiAJCXsKLQkJCWlmIChjb21wYXJl X3N1Ym5vZGUobGV2ZWwsIG9wLCB2YWwtPmxlbmd0aCwgcHJlZml4X2VxLCAodmFsLT5mbGFnICYg TFZBUl9BTllFTkQpKSkKKwkJCWlmIChjb21wYXJlX3N1Ym5vZGUobGV2ZWwsIG9wLCB2YWwtPmxl bmd0aCwgcHJlZml4LCBjaSkpCiAJCQkJcmV0dXJuIHRydWU7CiAJCX0KLQkJZWxzZSBpZiAoKHZh bC0+bGVuZ3RoID09IGxldmVsLT5sZW4gfHwKLQkJCQkgIChsZXZlbC0+bGVuID4gdmFsLT5sZW5n dGggJiYgKHZhbC0+ZmxhZyAmIExWQVJfQU5ZRU5EKSkpICYmCi0JCQkJICgqcHJlZml4X2VxKSAo b3AsIHZhbC0+bGVuZ3RoLCBsZXZlbC0+bmFtZSwgbGV2ZWwtPmxlbikpCisJCWVsc2UgaWYgKGx0 cmVlX2xhYmVsX21hdGNoKG9wLCB2YWwtPmxlbmd0aCwgbGV2ZWwtPm5hbWUsIGxldmVsLT5sZW4s CisJCQkJCQkJCSAgIHByZWZpeCwgY2kpKQogCQkJcmV0dXJuIHRydWU7CiAKIAkJdGxlbi0tOwot LSAKMi40My4wCgo= --=-DBMsktyq7MqymywqRXsG Content-Disposition: attachment; filename="v14.1-0001-Fix-more-multibyte-issues-in-ltree.patch" Content-Type: text/x-patch; name="v14.1-0001-Fix-more-multibyte-issues-in-ltree.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmYzhhY2ZiMGQ4NzE2N2NhNWJhMzA1MDYyZTg4Yzc0YmI0MzhjN2ZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDEzIEZlYiAyMDI2IDEyOjQ4OjUyIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MTQuMV0gRml4 IG1vcmUgbXVsdGlieXRlIGlzc3VlcyBpbiBsdHJlZS4KCkNvbW1pdCA4NGQ1ZWZhN2UzIG1pc3Nl ZCBzb21lIG11bHRpYnl0ZSBpc3N1ZXMgY2F1c2VkIGJ5IHNob3J0LWNpcmN1aXQKbG9naWMgaW4g dGhlIGNhbGxlcnMuIFRoZSBjYWxsZXJzIGFzc3VtZWQgdGhhdCBpZiB0aGUgcHJlZGljYXRlIHN0 cmluZwppcyBsb25nZXIgdGhhbiB0aGUgbGFiZWwgc3RyaW5nLCB0aGVuIGl0IGNvdWxkbid0IHBv c3NpYmx5IGJlIGEgbWF0Y2gsCmJ1dCBpdCBjYW4gYmUgd2hlbiB1c2luZyBjYXNlLWluc2Vuc2l0 aXZlIG1hdGNoaW5nIChMVkFSX0lOQ0FTRSkgaWYKY2FzZWZvbGRpbmcgY2hhbmdlcyB0aGUgYnl0 ZSBsZW5ndGguCgpGaXggYnkgcmVmYWN0b3JpbmcgdG8gZ2V0IHJpZCBvZiB0aGUgc2hvcnQtY2ly Y3VpdCBsb2dpYyBhcyB3ZWxsIGFzCnRoZSBmdW5jdGlvbiBwb2ludGVyLCBhbmQgY29uc29saWRh dGUgdGhlIGxvZ2ljIGluIGEgcmVwbGFjZW1lbnQKZnVuY3Rpb24gbHRyZWVfbGFiZWxfbWF0Y2go KS4KCkJhY2twYXRjaC10aHJvdWdoOiAxNAotLS0KIGNvbnRyaWIvbHRyZWUvbHF1ZXJ5X29wLmMg ICAgfCA2NSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGNvbnRyaWIvbHRy ZWUvbHRyZWUuaCAgICAgICAgfCAxMCArKystLS0KIGNvbnRyaWIvbHRyZWUvbHR4dHF1ZXJ5X29w LmMgfCAxMSArKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgNDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9sdHJlZS9scXVlcnlfb3AuYyBiL2NvbnRy aWIvbHRyZWUvbHF1ZXJ5X29wLmMKaW5kZXggNDYwMTlhMGU4M2EuLjU0MGI2NzhiMDM4IDEwMDY0 NAotLS0gYS9jb250cmliL2x0cmVlL2xxdWVyeV9vcC5jCisrKyBiL2NvbnRyaWIvbHRyZWUvbHF1 ZXJ5X29wLmMKQEAgLTQxLDggKzQxLDcgQEAgZ2V0bGV4ZW1lKGNoYXIgKnN0YXJ0LCBjaGFyICpl bmQsIGludCAqbGVuKQogfQogCiBib29sCi1jb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQs IGNoYXIgKnFuLCBpbnQgbGVuLAotCQkJCWx0cmVlX3ByZWZpeF9lcV9mdW5jIHByZWZpeF9lcSwg Ym9vbCBhbnllbmQpCitjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBp bnQgbGVuLCBib29sIHByZWZpeCwgYm9vbCBjaSkKIHsKIAljaGFyCSAgICplbmR0ID0gdC0+bmFt ZSArIHQtPmxlbjsKIAljaGFyCSAgICplbmRxID0gcW4gKyBsZW47CkBAIC01NywxMCArNTYsOCBA QCBjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBpbnQgbGVuLAogCQlp c29rID0gZmFsc2U7CiAJCXdoaWxlICgodG4gPSBnZXRsZXhlbWUodG4sIGVuZHQsICZsZW50KSkg IT0gTlVMTCkKIAkJewotCQkJaWYgKChsZW50ID09IGxlbnEgfHwgKGxlbnQgPiBsZW5xICYmIGFu eWVuZCkpICYmCi0JCQkJKCpwcmVmaXhfZXEpIChxbiwgbGVucSwgdG4sIGxlbnQpKQorCQkJaWYg KGx0cmVlX2xhYmVsX21hdGNoKHFuLCBsZW5xLCB0biwgbGVudCwgcHJlZml4LCBjaSkpCiAJCQl7 Ci0KIAkJCQlpc29rID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTc2LDMxICs3Myw0MCBA QCBjb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwgKnQsIGNoYXIgKnFuLCBpbnQgbGVuLAogfQog CiAvKgotICogQ2hlY2sgaWYgJ2EnIGlzIGEgcHJlZml4IG9mICdiJy4KKyAqIENoZWNrIGlmIHRo ZSBsYWJlbCBtYXRjaGVzIHRoZSBwcmVkaWNhdGUgc3RyaW5nLiBJZiAncHJlZml4JyBpcyB0cnVl LCB0aGVuCisgKiB0aGUgcHJlZGljYXRlIHN0cmluZyBpcyB0cmVhdGVkIGFzIGEgcHJlZml4LiBJ ZiAnY2knIGlzIHRydWUsIHRoZW4gdGhlCisgKiBwcmVkaWNhdGUgc3RyaW5nIGlzIGNhc2UtaW5z ZW5zaXRpdmUgKGFuZCBsb2NhbGUtYXdhcmUpLgogICovCiBib29sCi1sdHJlZV9wcmVmaXhfZXEo Y29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNoYXIgKmIsIHNpemVfdCBiX3N6KQor bHRyZWVfbGFiZWxfbWF0Y2goY29uc3QgY2hhciAqcHJlZCwgc2l6ZV90IHByZWRfbGVuLCBjb25z dCBjaGFyICpsYWJlbCwKKwkJCQkgIHNpemVfdCBsYWJlbF9sZW4sIGJvb2wgcHJlZml4LCBib29s IGNpKQogewotCWlmIChhX3N6ID4gYl9zeikKKwljaGFyCSAgICpmcHJlZDsJCQkvKiBjYXNlZm9s ZGVkIHByZWRpY2F0ZSAqLworCXNpemVfdAkJZnByZWRfbGVuOworCWNoYXIJICAgKmZsYWJlbDsJ CQkvKiBjYXNlZm9sZGVkIGxhYmVsICovCisJc2l6ZV90CQlmbGFiZWxfbGVuOworCWJvb2wJCXJl czsKKworCS8qIGZhc3QgcGF0aCBmb3IgYmluYXJ5IG1hdGNoIG9yIGJpbmFyeSBwcmVmaXggbWF0 Y2ggKi8KKwlpZiAoKHByZWRfbGVuID09IGxhYmVsX2xlbiB8fCAocHJlZml4ICYmIHByZWRfbGVu IDwgbGFiZWxfbGVuKSkgJiYKKwkJc3RybmNtcChwcmVkLCBsYWJlbCwgcHJlZF9sZW4pID09IDAp CisJCXJldHVybiB0cnVlOworCWVsc2UgaWYgKCFjaSkKIAkJcmV0dXJuIGZhbHNlOwotCWVsc2UK LQkJcmV0dXJuIChzdHJuY21wKGEsIGIsIGFfc3opID09IDApOwotfQogCi0vKgotICogQ2FzZS1p bnNlbnNpdGl2ZSBjaGVjayBpZiAnYScgaXMgYSBwcmVmaXggb2YgJ2InLgotICovCi1ib29sCi1s dHJlZV9wcmVmaXhfZXFfY2koY29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNoYXIg KmIsIHNpemVfdCBiX3N6KQotewotCWNoYXIJICAgKmFsID0gc3RyX3RvbG93ZXIoYSwgYV9zeiwg REVGQVVMVF9DT0xMQVRJT05fT0lEKTsKLQljaGFyCSAgICpibCA9IHN0cl90b2xvd2VyKGIsIGJf c3osIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7Ci0JYm9vbAkJcmVzOworCWZwcmVkID0gc3RyX3Rv bG93ZXIocHJlZCwgcHJlZF9sZW4sIERFRkFVTFRfQ09MTEFUSU9OX09JRCk7CisJZnByZWRfbGVu ID0gc3RybGVuKGZwcmVkKTsKKwlmbGFiZWwgPSBzdHJfdG9sb3dlcihsYWJlbCwgbGFiZWxfbGVu LCBERUZBVUxUX0NPTExBVElPTl9PSUQpOworCWZsYWJlbF9sZW4gPSBzdHJsZW4oZmxhYmVsKTsK IAotCXJlcyA9IChzdHJuY21wKGFsLCBibCwgYV9zeikgPT0gMCk7CisJaWYgKChmcHJlZF9sZW4g PT0gZmxhYmVsX2xlbiB8fCAocHJlZml4ICYmIGZwcmVkX2xlbiA8IGZsYWJlbF9sZW4pKSAmJgor CQlzdHJuY21wKGZwcmVkLCBmbGFiZWwsIGZwcmVkX2xlbikgPT0gMCkKKwkJcmVzID0gdHJ1ZTsK KwllbHNlCisJCXJlcyA9IGZhbHNlOwogCi0JcGZyZWUoYWwpOwotCXBmcmVlKGJsKTsKKwlwZnJl ZShmcHJlZCk7CisJcGZyZWUoZmxhYmVsKTsKIAogCXJldHVybiByZXM7CiB9CkBAIC0xMjUsMTkg KzEzMSwxNiBAQCBjaGVja0xldmVsKGxxdWVyeV9sZXZlbCAqY3VycSwgbHRyZWVfbGV2ZWwgKmN1 cnQpCiAKIAlmb3IgKGludCBpID0gMDsgaSA8IGN1cnEtPm51bXZhcjsgaSsrKQogCXsKLQkJbHRy ZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2VxOwotCi0JCXByZWZpeF9lcSA9IChjdXJ2YXItPmZs YWcgJiBMVkFSX0lOQ0FTRSkgPyBsdHJlZV9wcmVmaXhfZXFfY2kgOiBsdHJlZV9wcmVmaXhfZXE7 CisJCWJvb2wJCXByZWZpeCA9IChjdXJ2YXItPmZsYWcgJiBMVkFSX0FOWUVORCk7CisJCWJvb2wJ CWNpID0gKGN1cnZhci0+ZmxhZyAmIExWQVJfSU5DQVNFKTsKIAogCQlpZiAoY3VydmFyLT5mbGFn ICYgTFZBUl9TVUJMRVhFTUUpCiAJCXsKLQkJCWlmIChjb21wYXJlX3N1Ym5vZGUoY3VydCwgY3Vy dmFyLT5uYW1lLCBjdXJ2YXItPmxlbiwgcHJlZml4X2VxLAotCQkJCQkJCQkoY3VydmFyLT5mbGFn ICYgTFZBUl9BTllFTkQpKSkKKwkJCWlmIChjb21wYXJlX3N1Ym5vZGUoY3VydCwgY3VydmFyLT5u YW1lLCBjdXJ2YXItPmxlbiwgcHJlZml4LCBjaSkpCiAJCQkJcmV0dXJuIHN1Y2Nlc3M7CiAJCX0K LQkJZWxzZSBpZiAoKGN1cnZhci0+bGVuID09IGN1cnQtPmxlbiB8fAotCQkJCSAgKGN1cnQtPmxl biA+IGN1cnZhci0+bGVuICYmIChjdXJ2YXItPmZsYWcgJiBMVkFSX0FOWUVORCkpKSAmJgotCQkJ CSAoKnByZWZpeF9lcSkgKGN1cnZhci0+bmFtZSwgY3VydmFyLT5sZW4sIGN1cnQtPm5hbWUsIGN1 cnQtPmxlbikpCisJCWVsc2UgaWYgKGx0cmVlX2xhYmVsX21hdGNoKGN1cnZhci0+bmFtZSwgY3Vy dmFyLT5sZW4sIGN1cnQtPm5hbWUsCisJCQkJCQkJCSAgIGN1cnQtPmxlbiwgcHJlZml4LCBjaSkp CiAJCQlyZXR1cm4gc3VjY2VzczsKIAogCQljdXJ2YXIgPSBMVkFSX05FWFQoY3VydmFyKTsKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvbHRyZWUvbHRyZWUuaCBiL2NvbnRyaWIvbHRyZWUvbHRyZWUuaApp bmRleCBjN2YwMGE5OWIwNi4uYzNiMzhmY2RlNGIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbHRyZWUv bHRyZWUuaAorKysgYi9jb250cmliL2x0cmVlL2x0cmVlLmgKQEAgLTE0NCw4ICsxNDQsNiBAQCB0 eXBlZGVmIHN0cnVjdAogCWNoYXIJCWRhdGFbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKIH0gbHR4 dHF1ZXJ5OwogCi10eXBlZGVmIGJvb2wgKCpsdHJlZV9wcmVmaXhfZXFfZnVuYykgKGNvbnN0IGNo YXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIHNpemVfdCk7Ci0KICNkZWZpbmUgSERSU0laRVFU CQlNQVhBTElHTihWQVJIRFJTWiArIHNpemVvZihpbnQzMikpCiAjZGVmaW5lIENPTVBVVEVTSVpF KHNpemUsbGVub2ZvcGVyYW5kKQkoIEhEUlNJWkVRVCArIChzaXplKSAqIHNpemVvZihJVEVNKSAr IChsZW5vZm9wZXJhbmQpICkKICNkZWZpbmUgTFRYVFFVRVJZX1RPT19CSUcoc2l6ZSxsZW5vZm9w ZXJhbmQpIFwKQEAgLTE5NiwxMSArMTk0LDExIEBAIGJvb2wJCWx0cmVlX2V4ZWN1dGUoSVRFTSAq Y3VyaXRlbSwgdm9pZCAqY2hlY2t2YWwsCiAKIGludAkJCWx0cmVlX2NvbXBhcmUoY29uc3QgbHRy ZWUgKmEsIGNvbnN0IGx0cmVlICpiKTsKIGJvb2wJCWlubmVyX2lzcGFyZW50KGNvbnN0IGx0cmVl ICpjLCBjb25zdCBsdHJlZSAqcCk7Ci1ib29sCQljb21wYXJlX3N1Ym5vZGUobHRyZWVfbGV2ZWwg KnQsIGNoYXIgKnFuLCBpbnQgbGVuLAotCQkJCQkJCWx0cmVlX3ByZWZpeF9lcV9mdW5jIHByZWZp eF9lcSwgYm9vbCBhbnllbmQpOworYm9vbAkJY29tcGFyZV9zdWJub2RlKGx0cmVlX2xldmVsICp0 LCBjaGFyICpxbiwgaW50IGxlbiwgYm9vbCBwcmVmaXgsIGJvb2wgY2kpOwogbHRyZWUJICAgKmxj YV9pbm5lcihsdHJlZSAqKmEsIGludCBsZW4pOwotYm9vbAkJbHRyZWVfcHJlZml4X2VxKGNvbnN0 IGNoYXIgKmEsIHNpemVfdCBhX3N6LCBjb25zdCBjaGFyICpiLCBzaXplX3QgYl9zeik7Ci1ib29s CQlsdHJlZV9wcmVmaXhfZXFfY2koY29uc3QgY2hhciAqYSwgc2l6ZV90IGFfc3osIGNvbnN0IGNo YXIgKmIsIHNpemVfdCBiX3N6KTsKK2Jvb2wJCWx0cmVlX2xhYmVsX21hdGNoKGNvbnN0IGNoYXIg KnByZWQsIHNpemVfdCBwcmVkX2xlbiwKKwkJCQkJCQkgIGNvbnN0IGNoYXIgKmxhYmVsLCBzaXpl X3QgbGFiZWxfbGVuLAorCQkJCQkJCSAgYm9vbCBwcmVmaXgsIGJvb2wgY2kpOwogCiAvKiBmbWdy IG1hY3JvcyBmb3IgbHRyZWUgb2JqZWN0cyAqLwogI2RlZmluZSBEYXR1bUdldEx0cmVlUChYKQkJ CSgobHRyZWUgKikgUEdfREVUT0FTVF9EQVRVTShYKSkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbHRy ZWUvbHR4dHF1ZXJ5X29wLmMgYi9jb250cmliL2x0cmVlL2x0eHRxdWVyeV9vcC5jCmluZGV4IDNk Y2JhYjJjNDg0Li4wZTY2MTJmZjc3YSAxMDA2NDQKLS0tIGEvY29udHJpYi9sdHJlZS9sdHh0cXVl cnlfb3AuYworKysgYi9jb250cmliL2x0cmVlL2x0eHRxdWVyeV9vcC5jCkBAIC01OCwxOSArNTgs MTggQEAgY2hlY2tjb25kaXRpb25fc3RyKHZvaWQgKmNoZWNrdmFsLCBJVEVNICp2YWwpCiAJbHRy ZWVfbGV2ZWwgKmxldmVsID0gTFRSRUVfRklSU1QoKChDSEtWQUwgKikgY2hlY2t2YWwpLT5ub2Rl KTsKIAlpbnQJCQl0bGVuID0gKChDSEtWQUwgKikgY2hlY2t2YWwpLT5ub2RlLT5udW1sZXZlbDsK IAljaGFyCSAgICpvcCA9ICgoQ0hLVkFMICopIGNoZWNrdmFsKS0+b3BlcmFuZCArIHZhbC0+ZGlz dGFuY2U7Ci0JbHRyZWVfcHJlZml4X2VxX2Z1bmMgcHJlZml4X2VxOworCWJvb2wJCXByZWZpeCA9 ICh2YWwtPmZsYWcgJiBMVkFSX0FOWUVORCk7CisJYm9vbAkJY2kgPSAodmFsLT5mbGFnICYgTFZB Ul9JTkNBU0UpOwogCi0JcHJlZml4X2VxID0gKHZhbC0+ZmxhZyAmIExWQVJfSU5DQVNFKSA/IGx0 cmVlX3ByZWZpeF9lcV9jaSA6IGx0cmVlX3ByZWZpeF9lcTsKIAl3aGlsZSAodGxlbiA+IDApCiAJ ewogCQlpZiAodmFsLT5mbGFnICYgTFZBUl9TVUJMRVhFTUUpCiAJCXsKLQkJCWlmIChjb21wYXJl X3N1Ym5vZGUobGV2ZWwsIG9wLCB2YWwtPmxlbmd0aCwgcHJlZml4X2VxLCAodmFsLT5mbGFnICYg TFZBUl9BTllFTkQpKSkKKwkJCWlmIChjb21wYXJlX3N1Ym5vZGUobGV2ZWwsIG9wLCB2YWwtPmxl bmd0aCwgcHJlZml4LCBjaSkpCiAJCQkJcmV0dXJuIHRydWU7CiAJCX0KLQkJZWxzZSBpZiAoKHZh bC0+bGVuZ3RoID09IGxldmVsLT5sZW4gfHwKLQkJCQkgIChsZXZlbC0+bGVuID4gdmFsLT5sZW5n dGggJiYgKHZhbC0+ZmxhZyAmIExWQVJfQU5ZRU5EKSkpICYmCi0JCQkJICgqcHJlZml4X2VxKSAo b3AsIHZhbC0+bGVuZ3RoLCBsZXZlbC0+bmFtZSwgbGV2ZWwtPmxlbikpCisJCWVsc2UgaWYgKGx0 cmVlX2xhYmVsX21hdGNoKG9wLCB2YWwtPmxlbmd0aCwgbGV2ZWwtPm5hbWUsIGxldmVsLT5sZW4s CisJCQkJCQkJCSAgIHByZWZpeCwgY2kpKQogCQkJcmV0dXJuIHRydWU7CiAKIAkJdGxlbi0tOwot LSAKMi40My4wCgo= --=-DBMsktyq7MqymywqRXsG--