From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dmta0001.nifty.com (mta-snd00005.nifty.com [106.153.226.37]) by sourceware.org (Postfix) with ESMTPS id 900483882AE7 for ; Thu, 5 Oct 2023 15:19:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 900483882AE7 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=nifty.ne.jp Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=nifty.ne.jp Received: from HP-Z230 by dmta0001.nifty.com with ESMTP id <20231005151859331.PEXA.97419.HP-Z230@nifty.com> for ; Fri, 6 Oct 2023 00:18:59 +0900 Date: Fri, 6 Oct 2023 00:18:59 +0900 From: Takashi Yano To: newlib@sourceware.org Subject: Re: fprintf() crashes on wide-oriented stream. Message-Id: <20231006001859.5807f14084329e49ed8ae009@nifty.ne.jp> In-Reply-To: <20231005191814.d592433714d3f53cc5827c71@nifty.ne.jp> References: <20230926124147.a4dd18b495c6e0347a64fec0@nifty.ne.jp> <20230928125827.b63798bf217baf45c6a5dd22@nifty.ne.jp> <20231005191814.d592433714d3f53cc5827c71@nifty.ne.jp> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Fri__6_Oct_2023_00_18_59_+0900_A+ouBrS9.YGnP6Lh" X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --Multipart=_Fri__6_Oct_2023_00_18_59_+0900_A+ouBrS9.YGnP6Lh Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Thu, 5 Oct 2023 19:18:14 +0900 Takashi Yano wrote: > Hi Jeff, > > Thanks for reviewing and the comment. > > On Wed, 4 Oct 2023 16:16:13 -0400 > Jeff Johnston wrote: > > I finally took a look at this. The issue is whether POSIX compliance is > > desired. > > IIUC, POSIX states that width setting is once decided, it cannot be > changed until the stream is closed. However, nothing is stated what > should happen when different width data is output into the stream. > > > Corinna would have > > strong opinions that it is desired and thus, I think she should have her > > say when she gets back. I personally believe that > > newlib should have behaved like glibc. I also think the test snippet is > > invalid and should have performed an fwide call on stdout > > to reset the wide-orientation and have the code work properly in all cases. > > Currently, fputs and fputc works even for wide-oriended stream, so to > be consistent with that, fprintf also might be better to work. > > I wouldn't necessarily expect fprintf to work on wide-oriented streams, > but buffer overruns should not happen anyway. > > So, newlib should be fixed either way. As a test, I made a patch attached to make it behave like glibc. What do you think? -- Takashi Yano --Multipart=_Fri__6_Oct_2023_00_18_59_+0900_A+ouBrS9.YGnP6Lh Content-Type: text/plain; name="v3-0001-newlib-libc-Fix-crash-on-fprintf-to-a-wide-orient.patch" Content-Disposition: attachment; filename="v3-0001-newlib-libc-Fix-crash-on-fprintf-to-a-wide-orient.patch" Content-Transfer-Encoding: base64 RnJvbSAwNDNiNjk4MWY3NDhmMzMyMjI0YmQzY2IyM2FjOGYxODY4ZjYwZjUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogVGFrYXNoaSBZYW5vIDx0YWthc2hpLnlhbm9AbmlmdHkubmUu anA+DQpEYXRlOiBGcmksIDYgT2N0IDIwMjMgMDA6MDQ6NDkgKzA5MDANClN1YmplY3Q6IFtQQVRD SCB2M10gbmV3bGliOiBsaWJjOiBGaXggY3Jhc2ggb24gZnByaW50ZiB0byBhIHdpZGUtb3JpZW50 ZWQNCiBzdHJlYW0uDQoNClByZXZpb3VzbHksIGZwcmludGYoKSBvbiBhIHdpZGUtb3JpZW50ZWQg c3RyZWFtIGNyYXNoZXMgb3Igb3V0cHV0cw0KZ2FyYmFnZS4gVGhpcyBpcyBiZWNhdXNlIGEgbmFy cm93IGNoYXIgc3RyaW5nIHdoaWNoIGNhbiBiZSBvZGQgYnl0ZXMNCmluIGxlbmd0aCBpcyBjYXN0 IGludG8gYSB3aWRlIGNoYXIgc3RyaW5nIHdoaWNoIHNob3VsZCBiZSBldmVuDQpieXRlcyBpbiBs ZW5ndGggaW4gX19zcHJpbnRfci9fX3NmcHV0c19yIGJhc2VkIG9uIHRoZSBfX1NXSUQgZmxhZy4N CkFzIGEgcmVzdWx0LCBpZiB0aGUgbGVuZ3RoIGlzIG9kZCBieXRlcywgdGhlIHJlYWRpbmcgYnVm ZmVyIHJ1bnMgb3Zlcg0KdGhlIGJ1ZmZlciBsZW5ndGgsIHdoaWNoIGNhdXNlcyBhIGNyYXNoLiBJ ZiB0aGUgbGVuZ3RoIGlzIGV2ZW4gYnl0ZXMsDQpnYXJiYWdlIGlzIHByaW50ZWQuDQoNCldpdGgg dGhpcyBwYXRjaCwgYW55IG91dHB1dCB0byB0aGUgc3RyZWFtIHdoaWNoIGlzIHNldCB0byBkaWZm ZXJlbnQNCm9yaWVudGF0aW9uIGZhaWxzIHdpdGggZXJyb3IganVzdCBsaWtlIGdsaWJjLiBOb3Rl IHRoYXQgaXQgYmVoYXZlcw0KZGlmZmVyZW50bHkgZnJvbSBvdGhlciBsaWJjIGltcGxlbWVudGF0 aW9ucyBzdWNoIGFzIEJTRCwgbXVzbCBhbmQNClNvbGFyaXMuDQoNClJldmlld2VkLWJ5Og0KU2ln bmVkLW9mZi1ieTogVGFrYXNoaSBZYW5vIDx0YWthc2hpLnlhbm9AbmlmdHkubmUuanA+DQotLS0N CiBuZXdsaWIvbGliYy9zdGRpby9mZ2V0d2MuYyAgICB8IDUgKysrKy0NCiBuZXdsaWIvbGliYy9z dGRpby9mZ2V0d2NfdS5jICB8IDIgKysNCiBuZXdsaWIvbGliYy9zdGRpby9mZ2V0d3MuYyAgICB8 IDIgKysNCiBuZXdsaWIvbGliYy9zdGRpby9mcHV0cy5jICAgICB8IDcgKysrKysrLQ0KIG5ld2xp Yi9saWJjL3N0ZGlvL2ZwdXR3Yy5jICAgIHwgNSArKysrLQ0KIG5ld2xpYi9saWJjL3N0ZGlvL2Zw dXR3Y191LmMgIHwgMiArKw0KIG5ld2xpYi9saWJjL3N0ZGlvL2ZwdXR3cy5jICAgIHwgNCArKysr DQogbmV3bGliL2xpYmMvc3RkaW8vZnJlYWQuYyAgICAgfCA2ICsrKysrKw0KIG5ld2xpYi9saWJj L3N0ZGlvL2Z3cml0ZS5jICAgIHwgNyArKysrKysrDQogbmV3bGliL2xpYmMvc3RkaW8vbG9jYWwu aCAgICAgfCAyICsrDQogbmV3bGliL2xpYmMvc3RkaW8vcHV0Yy5jICAgICAgfCA2ICsrKysrKw0K IG5ld2xpYi9saWJjL3N0ZGlvL3B1dHMuYyAgICAgIHwgNyArKysrKystDQogbmV3bGliL2xpYmMv c3RkaW8vcmVmaWxsLmMgICAgfCAyICsrDQogbmV3bGliL2xpYmMvc3RkaW8vdW5nZXRjLmMgICAg fCA1ICsrKysrDQogbmV3bGliL2xpYmMvc3RkaW8vdW5nZXR3Yy5jICAgfCA0ICsrKy0NCiBuZXds aWIvbGliYy9zdGRpby92ZnByaW50Zi5jICB8IDQgKysrKw0KIG5ld2xpYi9saWJjL3N0ZGlvL3Zm c2NhbmYuYyAgIHwgNSArKysrKw0KIG5ld2xpYi9saWJjL3N0ZGlvL3Zmd3ByaW50Zi5jIHwgNCAr KysrDQogbmV3bGliL2xpYmMvc3RkaW8vdmZ3c2NhbmYuYyAgfCA1ICsrKysrDQogMTkgZmlsZXMg Y2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBh L25ld2xpYi9saWJjL3N0ZGlvL2ZnZXR3Yy5jIGIvbmV3bGliL2xpYmMvc3RkaW8vZmdldHdjLmMN CmluZGV4IDUyMjY5N2U5Yi4uY2U0ZjAwN2Q4IDEwMDY0NA0KLS0tIGEvbmV3bGliL2xpYmMvc3Rk aW8vZmdldHdjLmMNCisrKyBiL25ld2xpYi9saWJjL3N0ZGlvL2ZnZXR3Yy5jDQpAQCAtMTc4LDcg KzE3OCwxMCBAQCBfZmdldHdjX3IgKHN0cnVjdCBfcmVlbnQgKnB0ciwNCiANCiAgIF9uZXdsaWJf ZmxvY2tmaWxlX3N0YXJ0IChmcCk7DQogICBPUklFTlQoZnAsIDEpOw0KLSAgciA9IF9fZmdldHdj IChwdHIsIGZwKTsNCisgIGlmIChRVUVSWV9PUklFTlQoZnApICE9IDEpDQorICAgIHIgPSBXRU9G Ow0KKyAgZWxzZQ0KKyAgICByID0gX19mZ2V0d2MgKHB0ciwgZnApOw0KICAgX25ld2xpYl9mbG9j a2ZpbGVfZW5kIChmcCk7DQogICByZXR1cm4gcjsNCiB9DQpkaWZmIC0tZ2l0IGEvbmV3bGliL2xp YmMvc3RkaW8vZmdldHdjX3UuYyBiL25ld2xpYi9saWJjL3N0ZGlvL2ZnZXR3Y191LmMNCmluZGV4 IGNiYjk3MzYwYi4uYTBmZmJjYmExIDEwMDY0NA0KLS0tIGEvbmV3bGliL2xpYmMvc3RkaW8vZmdl dHdjX3UuYw0KKysrIGIvbmV3bGliL2xpYmMvc3RkaW8vZmdldHdjX3UuYw0KQEAgLTM0LDYgKzM0 LDggQEAgX2ZnZXR3Y191bmxvY2tlZF9yIChzdHJ1Y3QgX3JlZW50ICpwdHIsDQogCXJlZ2lzdGVy IEZJTEUgKmZwKQ0KIHsNCiAgIE9SSUVOVChmcCwgMSk7DQorICBpZiAoUVVFUllfT1JJRU5UKGZw KSAhPSAxKQ0KKyAgICByZXR1cm4gV0VPRjsNCiAgIHJldHVybiBfX2ZnZXR3YyAocHRyLCBmcCk7 DQogfQ0KIA0KZGlmZiAtLWdpdCBhL25ld2xpYi9saWJjL3N0ZGlvL2ZnZXR3cy5jIGIvbmV3bGli L2xpYmMvc3RkaW8vZmdldHdzLmMNCmluZGV4IGM5NDI4MDZjNi4uOWIxMzA0ZmRjIDEwMDY0NA0K LS0tIGEvbmV3bGliL2xpYmMvc3RkaW8vZmdldHdzLmMNCisrKyBiL25ld2xpYi9saWJjL3N0ZGlv L2ZnZXR3cy5jDQpAQCAtMTExLDYgKzExMSw4IEBAIF9mZ2V0d3NfciAoc3RydWN0IF9yZWVudCAq cHRyLA0KIA0KICAgX25ld2xpYl9mbG9ja2ZpbGVfc3RhcnQgKGZwKTsNCiAgIE9SSUVOVCAoZnAs IDEpOw0KKyAgaWYgKFFVRVJZX09SSUVOVCAoZnApICE9IDEpDQorICAgIGdvdG8gZXJyb3I7DQog DQogICBpZiAobiA8PSAwKQ0KICAgICB7DQpkaWZmIC0tZ2l0IGEvbmV3bGliL2xpYmMvc3RkaW8v ZnB1dHMuYyBiL25ld2xpYi9saWJjL3N0ZGlvL2ZwdXRzLmMNCmluZGV4IDRlOWNiNzU0Ny4uOGYx NjM5MDc2IDEwMDY0NA0KLS0tIGEvbmV3bGliL2xpYmMvc3RkaW8vZnB1dHMuYw0KKysrIGIvbmV3 bGliL2xpYmMvc3RkaW8vZnB1dHMuYw0KQEAgLTEwNCw3ICsxMDQsMTAgQEAgX2ZwdXRzX3IgKHN0 cnVjdCBfcmVlbnQgKiBwdHIsDQogDQogICBfbmV3bGliX2Zsb2NrZmlsZV9zdGFydCAoZnApOw0K ICAgT1JJRU5UIChmcCwgLTEpOw0KLSAgcmVzdWx0ID0gX19zZnZ3cml0ZV9yIChwdHIsIGZwLCAm dWlvKTsNCisgIGlmIChRVUVSWV9PUklFTlQgKGZwKSAhPSAtMSkNCisgICAgcmVzdWx0ID0gRU9G Ow0KKyAgZWxzZQ0KKyAgICByZXN1bHQgPSBfX3NmdndyaXRlX3IgKHB0ciwgZnAsICZ1aW8pOw0K ICAgX25ld2xpYl9mbG9ja2ZpbGVfZW5kIChmcCk7DQogICByZXR1cm4gcmVzdWx0Ow0KICNlbHNl DQpAQCAtMTE0LDYgKzExNyw4IEBAIF9mcHV0c19yIChzdHJ1Y3QgX3JlZW50ICogcHRyLA0KIA0K ICAgX25ld2xpYl9mbG9ja2ZpbGVfc3RhcnQgKGZwKTsNCiAgIE9SSUVOVCAoZnAsIC0xKTsNCisg IGlmIChRVUVSWV9PUklFTlQgKGZwKSAhPSAtMSkNCisgICAgZ290byBlcnJvcjsNCiAgIC8qIE1h a2Ugc3VyZSB3ZSBjYW4gd3JpdGUuICAqLw0KICAgaWYgKGNhbnR3cml0ZSAocHRyLCBmcCkpDQog ICAgIGdvdG8gZXJyb3I7DQpkaWZmIC0tZ2l0IGEvbmV3bGliL2xpYmMvc3RkaW8vZnB1dHdjLmMg Yi9uZXdsaWIvbGliYy9zdGRpby9mcHV0d2MuYw0KaW5kZXggOWE0ZTgwZDUyLi4wMjQyZGNhNzcg MTAwNjQ0DQotLS0gYS9uZXdsaWIvbGliYy9zdGRpby9mcHV0d2MuYw0KKysrIGIvbmV3bGliL2xp YmMvc3RkaW8vZnB1dHdjLmMNCkBAIC0xNzAsNyArMTcwLDEwIEBAIF9mcHV0d2NfciAoc3RydWN0 IF9yZWVudCAqcHRyLA0KIA0KICAgX25ld2xpYl9mbG9ja2ZpbGVfc3RhcnQgKGZwKTsNCiAgIE9S SUVOVChmcCwgMSk7DQotICByID0gX19mcHV0d2MocHRyLCB3YywgZnApOw0KKyAgaWYgKFFVRVJZ X09SSUVOVChmcCkgIT0gMSkNCisgICAgciA9IFdFT0Y7DQorICBlbHNlDQorICAgIHIgPSBfX2Zw dXR3YyhwdHIsIHdjLCBmcCk7DQogICBfbmV3bGliX2Zsb2NrZmlsZV9lbmQgKGZwKTsNCiAgIHJl dHVybiByOw0KIH0NCmRpZmYgLS1naXQgYS9uZXdsaWIvbGliYy9zdGRpby9mcHV0d2NfdS5jIGIv bmV3bGliL2xpYmMvc3RkaW8vZnB1dHdjX3UuYw0KaW5kZXggZDRlNTE1MzJhLi43OTEzNmMzZDgg MTAwNjQ0DQotLS0gYS9uZXdsaWIvbGliYy9zdGRpby9mcHV0d2NfdS5jDQorKysgYi9uZXdsaWIv bGliYy9zdGRpby9mcHV0d2NfdS5jDQpAQCAtMzUsNiArMzUsOCBAQCBfZnB1dHdjX3VubG9ja2Vk X3IgKHN0cnVjdCBfcmVlbnQgKnB0ciwNCiAJRklMRSAqZnApDQogew0KICAgT1JJRU5UKGZwLCAx KTsNCisgIGlmIChRVUVSWV9PUklFTlQoZnApICE9IDEpDQorICAgIHJldHVybiBXRU9GOw0KICAg cmV0dXJuIF9fZnB1dHdjKHB0ciwgd2MsIGZwKTsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvbmV3bGli L2xpYmMvc3RkaW8vZnB1dHdzLmMgYi9uZXdsaWIvbGliYy9zdGRpby9mcHV0d3MuYw0KaW5kZXgg OTJmMmNiZjZhLi41N2U5MzE5M2UgMTAwNjQ0DQotLS0gYS9uZXdsaWIvbGliYy9zdGRpby9mcHV0 d3MuYw0KKysrIGIvbmV3bGliL2xpYmMvc3RkaW8vZnB1dHdzLmMNCkBAIC0xMDYsNiArMTA2LDgg QEAgX2ZwdXR3c19yIChzdHJ1Y3QgX3JlZW50ICpwdHIsDQogDQogICBfbmV3bGliX2Zsb2NrZmls ZV9zdGFydCAoZnApOw0KICAgT1JJRU5UIChmcCwgMSk7DQorICBpZiAoUVVFUllfT1JJRU5UIChm cCkgIT0gMSkNCisgICAgZ290byBlcnJvcjsNCiAgIGlmIChjYW50d3JpdGUgKHB0ciwgZnApICE9 IDApDQogICAgIGdvdG8gZXJyb3I7DQogICB1aW8udWlvX2lvdiA9ICZpb3Y7DQpAQCAtMTMwLDYg KzEzMiw4IEBAIGVycm9yOg0KICNlbHNlDQogICBfbmV3bGliX2Zsb2NrZmlsZV9zdGFydCAoZnAp Ow0KICAgT1JJRU5UIChmcCwgMSk7DQorICBpZiAoUVVFUllfT1JJRU5UIChmcCkgIT0gMSkNCisg ICAgZ290byBlcnJvcjsNCiAgIGlmIChjYW50d3JpdGUgKHB0ciwgZnApICE9IDApDQogICAgIGdv dG8gZXJyb3I7DQogDQpkaWZmIC0tZ2l0IGEvbmV3bGliL2xpYmMvc3RkaW8vZnJlYWQuYyBiL25l d2xpYi9saWJjL3N0ZGlvL2ZyZWFkLmMNCmluZGV4IGRmODMyMTQ2MS4uZGJiMTMxMzBmIDEwMDY0 NA0KLS0tIGEvbmV3bGliL2xpYmMvc3RkaW8vZnJlYWQuYw0KKysrIGIvbmV3bGliL2xpYmMvc3Rk aW8vZnJlYWQuYw0KQEAgLTE1OSw2ICsxNTksMTEgQEAgX2ZyZWFkX3IgKHN0cnVjdCBfcmVlbnQg KiBwdHIsDQogDQogICBfbmV3bGliX2Zsb2NrZmlsZV9zdGFydCAoZnApOw0KICAgT1JJRU5UIChm cCwgLTEpOw0KKyAgaWYgKFFVRVJZX09SSUVOVCAoZnApICE9IC0xKQ0KKyAgICB7DQorICAgICAg Y291bnQgPSAwOw0KKyAgICAgIGdvdG8gcmV0Ow0KKyAgICB9DQogICBpZiAoZnAtPl9yIDwgMCkN CiAgICAgZnAtPl9yID0gMDsNCiAgIHRvdGFsID0gcmVzaWQ7DQpAQCAtMjUyLDYgKzI1Nyw3IEBA IF9mcmVhZF9yIChzdHJ1Y3QgX3JlZW50ICogcHRyLA0KICAgICAgIHJldHVybiBjcmxmX3IocHRy LCBmcCwgYnVmLCB0b3RhbCwgMCkgLyBzaXplOw0KICAgICB9DQogI2VuZGlmDQorcmV0Og0KICAg X25ld2xpYl9mbG9ja2ZpbGVfZW5kIChmcCk7DQogICByZXR1cm4gY291bnQ7DQogfQ0KZGlmZiAt LWdpdCBhL25ld2xpYi9saWJjL3N0ZGlvL2Z3cml0ZS5jIGIvbmV3bGliL2xpYmMvc3RkaW8vZndy aXRlLmMNCmluZGV4IGQ0OTlmNmY1OS4uNGYwYzI5ODJjIDEwMDY0NA0KLS0tIGEvbmV3bGliL2xp YmMvc3RkaW8vZndyaXRlLmMNCisrKyBiL25ld2xpYi9saWJjL3N0ZGlvL2Z3cml0ZS5jDQpAQCAt MTM0LDYgKzEzNCwxMSBAQCBfZndyaXRlX3IgKHN0cnVjdCBfcmVlbnQgKiBwdHIsDQogDQogICBf bmV3bGliX2Zsb2NrZmlsZV9zdGFydCAoZnApOw0KICAgT1JJRU5UIChmcCwgLTEpOw0KKyAgaWYg KFFVRVJZX09SSUVOVCAoZnApICE9IC0xKQ0KKyAgICB7DQorICAgICAgX25ld2xpYl9mbG9ja2Zp bGVfZXhpdCAoZnApOw0KKyAgICAgIHJldHVybiAwOw0KKyAgICB9DQogICBpZiAoX19zZnZ3cml0 ZV9yIChwdHIsIGZwLCAmdWlvKSA9PSAwKQ0KICAgICB7DQogICAgICAgX25ld2xpYl9mbG9ja2Zp bGVfZXhpdCAoZnApOw0KQEAgLTE0OSw2ICsxNTQsOCBAQCBfZndyaXRlX3IgKHN0cnVjdCBfcmVl bnQgKiBwdHIsDQogDQogICBfbmV3bGliX2Zsb2NrZmlsZV9zdGFydCAoZnApOw0KICAgT1JJRU5U IChmcCwgLTEpOw0KKyAgaWYgKFFVRVJZX09SSUVOVCAoZnApICE9IC0xKQ0KKyAgICBnb3RvIHJl dDsNCiAgIC8qIE1ha2Ugc3VyZSB3ZSBjYW4gd3JpdGUuICAqLw0KICAgaWYgKGNhbnR3cml0ZSAo cHRyLCBmcCkpDQogICAgIGdvdG8gcmV0Ow0KZGlmZiAtLWdpdCBhL25ld2xpYi9saWJjL3N0ZGlv L2xvY2FsLmggYi9uZXdsaWIvbGliYy9zdGRpby9sb2NhbC5oDQppbmRleCBiMzRjN2M5ZDguLmUz ZTdkN2YwOSAxMDA2NDQNCi0tLSBhL25ld2xpYi9saWJjL3N0ZGlvL2xvY2FsLmgNCisrKyBiL25l d2xpYi9saWJjL3N0ZGlvL2xvY2FsLmgNCkBAIC0yNDQsOCArMjQ0LDEwIEBAIGV4dGVybiBfUkVB RF9XUklURV9SRVRVUk5fVFlQRSBfX3N3cml0ZTY0IChzdHJ1Y3QgX3JlZW50ICosIHZvaWQgKiwN CiAJfQkJCQkJCQlcDQogICAgIH0JCQkJCQkJCVwNCiAgIHdoaWxlICgwKQ0KKyNkZWZpbmUgUVVF UllfT1JJRU5UKGZwKSAoKChmcCktPl9mbGFnczIgJiBfX1NXSUQpID8gMSA6IC0xKQ0KICNlbHNl DQogI2RlZmluZSBPUklFTlQoZnAsb3JpKQ0KKyNkZWZpbmUgUVVFUllfT1JJRU5UKGZwKSAoLTEp DQogI2VuZGlmDQogDQogLyogV0FSTklORzogX2RjdnQgaXMgZGVmaW5lZCBpbiB0aGUgc3RkbGli IGRpcmVjdG9yeSwgbm90IGhlcmUhICAqLw0KZGlmZiAtLWdpdCBhL25ld2xpYi9saWJjL3N0ZGlv L3B1dGMuYyBiL25ld2xpYi9saWJjL3N0ZGlvL3B1dGMuYw0KaW5kZXggNmE0MTBlMjE2Li5kYmM2 MzNkMTAgMTAwNjQ0DQotLS0gYS9uZXdsaWIvbGliYy9zdGRpby9wdXRjLmMNCisrKyBiL25ld2xp Yi9saWJjL3N0ZGlvL3B1dGMuYw0KQEAgLTg0LDYgKzg0LDkgQEAgX3B1dGNfciAoc3RydWN0IF9y ZWVudCAqcHRyLA0KIHsNCiAgIGludCByZXN1bHQ7DQogICBDSEVDS19JTklUIChwdHIsIGZwKTsN CisgIE9SSUVOVChmcCwgLTEpOw0KKyAgaWYgKFFVRVJZX09SSUVOVChmcCkgIT0gLTEpDQorICAg IHJldHVybiBFT0Y7DQogICBfbmV3bGliX2Zsb2NrZmlsZV9zdGFydCAoZnApOw0KICAgcmVzdWx0 ID0gX19zcHV0Y19yIChwdHIsIGMsIGZwKTsNCiAgIF9uZXdsaWJfZmxvY2tmaWxlX2VuZCAoZnAp Ow0KQEAgLTEwMCw2ICsxMDMsOSBAQCBwdXRjIChpbnQgYywNCiAgIHN0cnVjdCBfcmVlbnQgKnJl ZW50ID0gX1JFRU5UOw0KIA0KICAgQ0hFQ0tfSU5JVCAocmVlbnQsIGZwKTsNCisgIE9SSUVOVChm cCwgLTEpOw0KKyAgaWYgKFFVRVJZX09SSUVOVChmcCkgIT0gLTEpDQorICAgIHJldHVybiBFT0Y7 DQogICBfbmV3bGliX2Zsb2NrZmlsZV9zdGFydCAoZnApOw0KICAgcmVzdWx0ID0gX19zcHV0Y19y IChyZWVudCwgYywgZnApOw0KICAgX25ld2xpYl9mbG9ja2ZpbGVfZW5kIChmcCk7DQpkaWZmIC0t Z2l0IGEvbmV3bGliL2xpYmMvc3RkaW8vcHV0cy5jIGIvbmV3bGliL2xpYmMvc3RkaW8vcHV0cy5j DQppbmRleCBkNGQ3YjdmZmIuLjAzZDIzMTQ5OSAxMDA2NDQNCi0tLSBhL25ld2xpYi9saWJjL3N0 ZGlvL3B1dHMuYw0KKysrIGIvbmV3bGliL2xpYmMvc3RkaW8vcHV0cy5jDQpAQCAtODgsNyArODgs MTAgQEAgX3B1dHNfciAoc3RydWN0IF9yZWVudCAqcHRyLA0KICAgQ0hFQ0tfSU5JVCAocHRyLCBm cCk7DQogICBfbmV3bGliX2Zsb2NrZmlsZV9zdGFydCAoZnApOw0KICAgT1JJRU5UIChmcCwgLTEp Ow0KLSAgcmVzdWx0ID0gKF9fc2Z2d3JpdGVfciAocHRyLCBmcCwgJnVpbykgPyBFT0YgOiAnXG4n KTsNCisgIGlmIChRVUVSWV9PUklFTlQgKGZwKSAhPSAtMSkNCisgICAgcmVzdWx0ID0gRU9GOw0K KyAgZWxzZQ0KKyAgICByZXN1bHQgPSAoX19zZnZ3cml0ZV9yIChwdHIsIGZwLCAmdWlvKSA/IEVP RiA6ICdcbicpOw0KICAgX25ld2xpYl9mbG9ja2ZpbGVfZW5kIChmcCk7DQogICByZXR1cm4gcmVz dWx0Ow0KICNlbHNlDQpAQCAtMTAxLDYgKzEwNCw4IEBAIF9wdXRzX3IgKHN0cnVjdCBfcmVlbnQg KnB0ciwNCiAgIENIRUNLX0lOSVQgKHB0ciwgZnApOw0KICAgX25ld2xpYl9mbG9ja2ZpbGVfc3Rh cnQgKGZwKTsNCiAgIE9SSUVOVCAoZnAsIC0xKTsNCisgIGlmIChRVUVSWV9PUklFTlQgKGZwKSAh PSAtMSkNCisgICAgZ290byBlcnI7DQogICAvKiBNYWtlIHN1cmUgd2UgY2FuIHdyaXRlLiAgKi8N CiAgIGlmIChjYW50d3JpdGUgKHB0ciwgZnApKQ0KICAgICBnb3RvIGVycjsNCmRpZmYgLS1naXQg YS9uZXdsaWIvbGliYy9zdGRpby9yZWZpbGwuYyBiL25ld2xpYi9saWJjL3N0ZGlvL3JlZmlsbC5j DQppbmRleCA3YmQzODgwNmMuLjVkOWZiMTk4YyAxMDA2NDQNCi0tLSBhL25ld2xpYi9saWJjL3N0 ZGlvL3JlZmlsbC5jDQorKysgYi9uZXdsaWIvbGliYy9zdGRpby9yZWZpbGwuYw0KQEAgLTQ0LDYg KzQ0LDggQEAgX19zcmVmaWxsX3IgKHN0cnVjdCBfcmVlbnQgKiBwdHIsDQogICBDSEVDS19JTklU IChwdHIsIGZwKTsNCiANCiAgIE9SSUVOVCAoZnAsIC0xKTsNCisgIGlmIChRVUVSWV9PUklFTlQg KGZwKSAhPSAtMSkNCisgICAgcmV0dXJuIEVPRjsNCiANCiAgIGZwLT5fciA9IDA7CQkJLyogbGFy Z2VseSBhIGNvbnZlbmllbmNlIGZvciBjYWxsZXJzICovDQogDQpkaWZmIC0tZ2l0IGEvbmV3bGli L2xpYmMvc3RkaW8vdW5nZXRjLmMgYi9uZXdsaWIvbGliYy9zdGRpby91bmdldGMuYw0KaW5kZXgg NTMzYzI4ZWFjLi5hZTg1OWI0ZjggMTAwNjQ0DQotLS0gYS9uZXdsaWIvbGliYy9zdGRpby91bmdl dGMuYw0KKysrIGIvbmV3bGliL2xpYmMvc3RkaW8vdW5nZXRjLmMNCkBAIC0xMjYsNiArMTI2LDEx IEBAIF91bmdldGNfciAoc3RydWN0IF9yZWVudCAqcnB0ciwNCiAgIF9uZXdsaWJfZmxvY2tmaWxl X3N0YXJ0IChmcCk7DQogDQogICBPUklFTlQgKGZwLCAtMSk7DQorICBpZiAoUVVFUllfT1JJRU5U IChmcCkgIT0gLTEpDQorICAgIHsNCisgICAgICBfbmV3bGliX2Zsb2NrZmlsZV9leGl0IChmcCk7 DQorICAgICAgcmV0dXJuIEVPRjsNCisgICAgfQ0KIA0KICAgLyogQWZ0ZXIgdW5nZXRjLCB3ZSB3 b24ndCBiZSBhdCBlb2YgYW55bW9yZSAqLw0KICAgZnAtPl9mbGFncyAmPSB+X19TRU9GOw0KZGlm ZiAtLWdpdCBhL25ld2xpYi9saWJjL3N0ZGlvL3VuZ2V0d2MuYyBiL25ld2xpYi9saWJjL3N0ZGlv L3VuZ2V0d2MuYw0KaW5kZXggMTZkMzdmMmQxLi5jOTQzN2MwZmEgMTAwNjQ0DQotLS0gYS9uZXds aWIvbGliYy9zdGRpby91bmdldHdjLmMNCisrKyBiL25ld2xpYi9saWJjL3N0ZGlvL3VuZ2V0d2Mu Yw0KQEAgLTgzLDcgKzgzLDkgQEAgX3VuZ2V0d2NfciAoc3RydWN0IF9yZWVudCAqcHRyLA0KIA0K ICAgX25ld2xpYl9mbG9ja2ZpbGVfc3RhcnQgKGZwKTsNCiAgIE9SSUVOVCAoZnAsIDEpOw0KLSAg aWYgKHdjID09IFdFT0YpDQorICBpZiAoUVVFUllfT1JJRU5UIChmcCkgIT0gMSkNCisgICAgd2Mg PSBXRU9GOw0KKyAgZWxzZSBpZiAod2MgPT0gV0VPRikNCiAgICAgd2MgPSBXRU9GOw0KICAgZWxz ZSBpZiAoKGxlbiA9IF93Y3J0b21iX3IocHRyLCBidWYsIHdjLCAmZnAtPl9tYnN0YXRlKSkgPT0g KHNpemVfdCktMSkNCiAgICAgew0KZGlmZiAtLWdpdCBhL25ld2xpYi9saWJjL3N0ZGlvL3ZmcHJp bnRmLmMgYi9uZXdsaWIvbGliYy9zdGRpby92ZnByaW50Zi5jDQppbmRleCA2YTE5OGUyYzYuLjRj MTNkZWU1MSAxMDA2NDQNCi0tLSBhL25ld2xpYi9saWJjL3N0ZGlvL3ZmcHJpbnRmLmMNCisrKyBi L25ld2xpYi9saWJjL3N0ZGlvL3ZmcHJpbnRmLmMNCkBAIC04NDYsNiArODQ2LDEwIEBAIF9WRlBS SU5URl9SIChzdHJ1Y3QgX3JlZW50ICpkYXRhLA0KIAlfbmV3bGliX2Zsb2NrZmlsZV9zdGFydCAo ZnApOw0KIA0KIAlPUklFTlQoZnAsIC0xKTsNCisJaWYgKFFVRVJZX09SSUVOVChmcCkgIT0gLTEp IHsNCisJCV9uZXdsaWJfZmxvY2tmaWxlX2V4aXQgKGZwKTsNCisJCXJldHVybiAoRU9GKTsNCisJ fQ0KIA0KIAkvKiBzb3JyeSwgZnByaW50ZihyZWFkX29ubHlfZmlsZSwgIiIpIHJldHVybnMgRU9G LCBub3QgMCAqLw0KIAlpZiAoY2FudHdyaXRlIChkYXRhLCBmcCkpIHsNCmRpZmYgLS1naXQgYS9u ZXdsaWIvbGliYy9zdGRpby92ZnNjYW5mLmMgYi9uZXdsaWIvbGliYy9zdGRpby92ZnNjYW5mLmMN CmluZGV4IGNmZWVhOTg3Ni4uNjczZWQ4YjQyIDEwMDY0NA0KLS0tIGEvbmV3bGliL2xpYmMvc3Rk aW8vdmZzY2FuZi5jDQorKysgYi9uZXdsaWIvbGliYy9zdGRpby92ZnNjYW5mLmMNCkBAIC01OTAs NiArNTkwLDExIEBAIF9fU1ZGU0NBTkZfUiAoc3RydWN0IF9yZWVudCAqcnB0ciwNCiAgIF9uZXds aWJfZmxvY2tmaWxlX3N0YXJ0IChmcCk7DQogDQogICBPUklFTlQgKGZwLCAtMSk7DQorICBpZiAo UVVFUllfT1JJRU5UIChmcCkgIT0gLTEpDQorICAgIHsNCisgICAgICBuYXNzaWduZWQgPSBFT0Y7 DQorICAgICAgZ290byBhbGxfZG9uZTsNCisgICAgfQ0KIA0KICAgbmFzc2lnbmVkID0gMDsNCiAg IG5yZWFkID0gMDsNCmRpZmYgLS1naXQgYS9uZXdsaWIvbGliYy9zdGRpby92ZndwcmludGYuYyBi L25ld2xpYi9saWJjL3N0ZGlvL3Zmd3ByaW50Zi5jDQppbmRleCA3ODA3YTEyMjkuLjBiYjE0N2Qx ZCAxMDA2NDQNCi0tLSBhL25ld2xpYi9saWJjL3N0ZGlvL3Zmd3ByaW50Zi5jDQorKysgYi9uZXds aWIvbGliYy9zdGRpby92ZndwcmludGYuYw0KQEAgLTU4OSw2ICs1ODksMTAgQEAgX1ZGV1BSSU5U Rl9SIChzdHJ1Y3QgX3JlZW50ICpkYXRhLA0KIAlfbmV3bGliX2Zsb2NrZmlsZV9zdGFydCAoZnAp Ow0KIA0KIAlPUklFTlQoZnAsIDEpOw0KKwlpZiAoUVVFUllfT1JJRU5UKGZwKSAhPSAxKSB7DQor CQlfbmV3bGliX2Zsb2NrZmlsZV9leGl0IChmcCk7DQorCQlyZXR1cm4gKEVPRik7DQorCX0NCiAN CiAJLyogc29ycnksIGZ3cHJpbnRmKHJlYWRfb25seV9maWxlLCAiIikgcmV0dXJucyBFT0YsIG5v dCAwICovDQogCWlmIChjYW50d3JpdGUgKGRhdGEsIGZwKSkgew0KZGlmZiAtLWdpdCBhL25ld2xp Yi9saWJjL3N0ZGlvL3Zmd3NjYW5mLmMgYi9uZXdsaWIvbGliYy9zdGRpby92ZndzY2FuZi5jDQpp bmRleCBkZjk2NmY5MjkuLjQzNTY2OTRhNiAxMDA2NDQNCi0tLSBhL25ld2xpYi9saWJjL3N0ZGlv L3Zmd3NjYW5mLmMNCisrKyBiL25ld2xpYi9saWJjL3N0ZGlvL3Zmd3NjYW5mLmMNCkBAIC01MTcs NiArNTE3LDExIEBAIF9fU1ZGV1NDQU5GX1IgKHN0cnVjdCBfcmVlbnQgKnJwdHIsDQogICBfbmV3 bGliX2Zsb2NrZmlsZV9zdGFydCAoZnApOw0KIA0KICAgT1JJRU5UIChmcCwgMSk7DQorICBpZiAo UVVFUllfT1JJRU5UIChmcCkgIT0gMSkNCisgICAgew0KKyAgICAgIG5hc3NpZ25lZCA9IEVPRjsN CisgICAgICBnb3RvIGFsbF9kb25lOw0KKyAgICB9DQogDQogICBuYXNzaWduZWQgPSAwOw0KICAg bnJlYWQgPSAwOw0KLS0gDQoyLjM5LjANCg0K --Multipart=_Fri__6_Oct_2023_00_18_59_+0900_A+ouBrS9.YGnP6Lh--