From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x534.google.com (mail-pg1-x534.google.com [IPv6:2607:f8b0:4864:20::534]) by sourceware.org (Postfix) with ESMTPS id 425023858401; Fri, 17 Sep 2021 04:12:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 425023858401 Received: by mail-pg1-x534.google.com with SMTP id u18so8425671pgf.0; Thu, 16 Sep 2021 21:12:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1IXfJYuUPWOP2IHHpUipIryHFyYLynJdZC5KHZidGVA=; b=gfxLFVYtdH5xhPNKhZJz3mPToId9ejMEv99dC5eCmsgeLRSblx12p3j28YtjGO09rD n19wLNbFjKf6CRgssUcpMp32WFx2QjXi0FkFbLNiKuVgsM0TiXD3mSQqfV57m5lX3psY WLt2j1BECXAZTw4TfgQG/gsFzkUV89FfOdHJzB0wohSwSOtdd0HVCr9dCav6qBnUwFl1 A32bu4TnyEHT08MGDvKUZB85hf3oz4iyjG3Wcjq47VLWw+x3IEl5WMXAB+EmCaE2dieK 2e507pRW4Q3IfgK0u1kIVW6L209jzoMbWOspUR7NmBmaO2YPqHs6aZazABqHIlv5arbx 0piw== X-Gm-Message-State: AOAM530tVWHFqOZ0q4llcS3xGD3rmV0PRGnIxeRilbf+tKgWGC0+Z1X4 2vqY/zbMTid1nlzeA+yXXeX7LTNY3SEgYJTVlyysAsre X-Google-Smtp-Source: ABdhPJywNCOlhLHCuuTe4trFF7uadUf7kdv3FKmnCINe2IvjORRqH0BkVtgmvsLXctvjflYECNL595lNIX6viN/vRBo= X-Received: by 2002:aa7:8201:0:b0:3fd:7dbd:fbbe with SMTP id k1-20020aa78201000000b003fd7dbdfbbemr8775222pfi.43.1631851964323; Thu, 16 Sep 2021 21:12:44 -0700 (PDT) MIME-Version: 1.0 References: <20210914190919.1728320-1-siddhesh@sourceware.org> <9d0f8dcc-35d4-d87a-b3b0-c006fdfe482f@sourceware.org> <877dfhp1lc.fsf@oldenburg.str.redhat.com> <0002ae3d-8957-2e3f-4fb3-298de3304ad2@redhat.com> <874kakjt2p.fsf@oldenburg.str.redhat.com> <08ca98e1-b141-b31f-2743-bd348cdd359d@sourceware.org> <87lf3vj243.fsf@oldenburg.str.redhat.com> <87fsu3j1g6.fsf@oldenburg.str.redhat.com> In-Reply-To: <87fsu3j1g6.fsf@oldenburg.str.redhat.com> From: "H.J. Lu" Date: Thu, 16 Sep 2021 21:12:08 -0700 Message-ID: Subject: [PATCH] ld.so: Remove DL_RO_DYN_SECTION To: Florian Weimer Cc: Siddhesh Poyarekar , "Carlos O'Donell" , GNU C Library Content-Type: multipart/mixed; boundary="000000000000a91c6705cc292448" X-Spam-Status: No, score=-3023.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Sep 2021 04:12:46 -0000 --000000000000a91c6705cc292448 Content-Type: text/plain; charset="UTF-8" On Thu, Sep 16, 2021 at 9:01 PM Florian Weimer wrote: > > * Florian Weimer: > > > * Siddhesh Poyarekar: > > > >> On 9/16/21 11:33 PM, Florian Weimer wrote: > >>> * H. J. Lu: > >>> > >>>> No. Relocation of vDSO dynamic section is done by elf_get_dynamic_info. > >>>> Here is a patch to remove the hack for vDSO. > >>> I have concerns that this does not actually work on MIPS. What > >>> happens > >>> if the object has a single RWX LOAD segment? What kind of flags will > >>> the link editor set on the DYNAMIC segment in this case? RWX or R, RX? > >>> I suspect it will be RWX, which means that we actually need the special > >>> case. > >> > >> The DYNAMIC segment flags will be based on .dynamic, which is > >> read-only for MIPS. > > > > Right, as far as I can tell BFD ld does not copy the W bit to the > > DYNAMIC segment even if it is located inside an RW LOAD segment. So > > unless there are old binaries floating around which were linked > > differently, the change should be correct for MIPS, too (and likewise > > for RISC-V, although I did not check that). > > *sigh* > > I checked riscv64-linux-gnu-rv64imafdc-lp64d now, and binutils BFD ld is > actually inconsistent with glibc there. There, DYNAMIC is RW: > > LOAD 0x0003f0 0x00000000000003f0 0x00000000000003f0 0x0001c0 0x0001c0 RW 0x1000 > DYNAMIC 0x000440 0x0000000000000440 0x0000000000000440 0x000170 0x000170 RW 0x8 > > So libphobos and others would have to change if we adopt H.J.'s patch, I > think. With it, RISC-V would be just like all the other non-MIPS > targets. > Glibc is wrong here. My patch will make it correct. Here is the updated patch with the new commit log. -- H.J. --000000000000a91c6705cc292448 Content-Type: application/x-patch; name="0001-ld.so-Remove-DL_RO_DYN_SECTION.patch" Content-Disposition: attachment; filename="0001-ld.so-Remove-DL_RO_DYN_SECTION.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ktnuh4pm0 RnJvbSA2ZTkyNWMyY2ExZDc1MTE1YjY5YzMxNWEyZjRkNWVkYzk1ZGYxYzAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTYgU2VwIDIwMjEgMDg6MTU6MjkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBsZC5zbzog UmVtb3ZlIERMX1JPX0RZTl9TRUNUSU9OCgoxLiBBZGQgYSBsX2xkX3JlYWRvbmx5IGZpZWxkIHRv IHN0cnVjdCBsaW5rX21hcCB0byBpbmRpY2F0ZSBpZiBkeW5hbWljCnNlY3Rpb24gaXMgcmVhZG9u bHkgYW5kIHNldCBpdCBiYXNlZCBvbiBwX2ZsYWdzIG9mIFBUX0RZTkFNSUMgc2VnbWVudC4KMi4g UmVtb3ZlIERMX1JPX0RZTl9TRUNUSU9OIGFuZCBjaGVjayBsX2xkX3JlYWRvbmx5IGluc3RlYWQg dG8gZGVjaWRlCmlmIGR5bmFtaWMgc2VjdGlvbiBzaG91bGQgYmUgcmVsb2NhdGVkLgozLiBEb24n dCB1c2UgYSBzdGF0aWMgZHluYW1pYyBzZWN0aW9uIHRvIG1ha2UgcmVhZG9ubHkgZHluYW1pYyBz ZWN0aW9uCmluIHZEU08gd3JpdGFibGUuCjQuIFJlbW92ZSB0aGUgdGVtcCBhcmd1bWVudCBmcm9t IGVsZl9nZXRfZHluYW1pY19pbmZvLgotLS0KIGVsZi9kbC1sb2FkLmMgICAgICAgICAgICAgIHwg IDMgKystCiBlbGYvZGwtcmVsb2Mtc3RhdGljLXBpZS5jICB8IDEyICsrKysrKysrKysrLQogZWxm L2dldC1keW5hbWljLWluZm8uaCAgICAgfCAxNyArKystLS0tLS0tLS0tLS0tLQogZWxmL3J0bGQu YyAgICAgICAgICAgICAgICAgfCAgNiArKysrLS0KIGVsZi9zZXR1cC12ZHNvLmggICAgICAgICAg IHwgIDUgKystLS0KIGluY2x1ZGUvbGluay5oICAgICAgICAgICAgIHwgIDEgKwogc3lzZGVwcy9n ZW5lcmljL2xkc29kZWZzLmggfCAgNyArKy0tLS0tCiBzeXNkZXBzL21pcHMvbGRzb2RlZnMuaCAg ICB8ICA0IC0tLS0KIHN5c2RlcHMvcmlzY3YvbGRzb2RlZnMuaCAgIHwgIDUgLS0tLS0KIDkgZmls ZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZWxmL2RsLWxvYWQuYyBiL2VsZi9kbC1sb2FkLmMKaW5kZXggNjUwZTRlZGMzNS4uNDQ0NWMy OGVmMyAxMDA2NDQKLS0tIGEvZWxmL2RsLWxvYWQuYworKysgYi9lbGYvZGwtbG9hZC5jCkBAIC0x MTQ5LDYgKzExNDksNyBAQCBfZGxfbWFwX29iamVjdF9mcm9tX2ZkIChjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICpvcmlnbmFtZSwgaW50IGZkLAogCQkgc3VjaCBhIHNlZ21lbnQgdG8gYXZv aWQgYSBjcmFzaCBsYXRlci4gICovCiAJICAgICAgbC0+bF9sZCA9ICh2b2lkICopIHBoLT5wX3Zh ZGRyOwogCSAgICAgIGwtPmxfbGRudW0gPSBwaC0+cF9tZW1zeiAvIHNpemVvZiAoRWxmVyhEeW4p KTsKKwkgICAgICBsLT5sX2xkX3JlYWRvbmx5ID0gKHBoLT5wX2ZsYWdzICYgUEZfVykgPT0gMDsK IAkgICAgfQogCSAgYnJlYWs7CiAKQEAgLTEyOTIsNyArMTI5Myw3IEBAIF9kbF9tYXBfb2JqZWN0 X2Zyb21fZmQgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKm9yaWduYW1lLCBpbnQgZmQs CiAgIGVsc2UKICAgICBsLT5sX2xkID0gKEVsZlcoRHluKSAqKSAoKEVsZlcoQWRkcikpIGwtPmxf bGQgKyBsLT5sX2FkZHIpOwogCi0gIGVsZl9nZXRfZHluYW1pY19pbmZvIChsLCBOVUxMKTsKKyAg ZWxmX2dldF9keW5hbWljX2luZm8gKGwpOwogCiAgIC8qIE1ha2Ugc3VyZSB3ZSBhcmUgbm90IGRs b3BlbidpbmcgYW4gb2JqZWN0IHRoYXQgaGFzIHRoZQogICAgICBERl8xX05PT1BFTiBmbGFnIHNl dCwgb3IgYSBQSUUgb2JqZWN0LiAgKi8KZGlmZiAtLWdpdCBhL2VsZi9kbC1yZWxvYy1zdGF0aWMt cGllLmMgYi9lbGYvZGwtcmVsb2Mtc3RhdGljLXBpZS5jCmluZGV4IGQ1YmQyZjMxZTkuLjJmYjAy ZDcyNzYgMTAwNjQ0Ci0tLSBhL2VsZi9kbC1yZWxvYy1zdGF0aWMtcGllLmMKKysrIGIvZWxmL2Rs LXJlbG9jLXN0YXRpYy1waWUuYwpAQCAtNDAsNyArNDAsMTcgQEAgX2RsX3JlbG9jYXRlX3N0YXRp Y19waWUgKHZvaWQpCiAKICAgLyogUmVhZCBvdXIgb3duIGR5bmFtaWMgc2VjdGlvbiBhbmQgZmls bCBpbiB0aGUgaW5mbyBhcnJheS4gICovCiAgIG1haW5fbWFwLT5sX2xkID0gKCh2b2lkICopIG1h aW5fbWFwLT5sX2FkZHIgKyBlbGZfbWFjaGluZV9keW5hbWljICgpKTsKLSAgZWxmX2dldF9keW5h bWljX2luZm8gKG1haW5fbWFwLCBOVUxMKTsKKworICBjb25zdCBFbGZXKFBoZHIpICpwaCwgKnBo ZHIgPSBHTChkbF9waGRyKTsKKyAgc2l6ZV90IHBobnVtID0gR0woZGxfcGhudW0pOworICBmb3Ig KHBoID0gcGhkcjsgcGggPCAmcGhkcltwaG51bV07ICsrcGgpCisgICAgaWYgKHBoLT5wX3R5cGUg PT0gUFRfRFlOQU1JQykKKyAgICAgIHsKKwltYWluX21hcC0+bF9sZF9yZWFkb25seSA9IChwaC0+ cF9mbGFncyAmIFBGX1cpID09IDA7CisJYnJlYWs7CisgICAgICB9CisKKyAgZWxmX2dldF9keW5h bWljX2luZm8gKG1haW5fbWFwKTsKIAogIyBpZmRlZiBFTEZfTUFDSElORV9CRUZPUkVfUlRMRF9S RUxPQwogICBFTEZfTUFDSElORV9CRUZPUkVfUlRMRF9SRUxPQyAobWFpbl9tYXAtPmxfaW5mbyk7 CmRpZmYgLS1naXQgYS9lbGYvZ2V0LWR5bmFtaWMtaW5mby5oIGIvZWxmL2dldC1keW5hbWljLWlu Zm8uaAppbmRleCBkOGVjMzIzNzdkLi43ZTZjMGYzOTg3IDEwMDY0NAotLS0gYS9lbGYvZ2V0LWR5 bmFtaWMtaW5mby5oCisrKyBiL2VsZi9nZXQtZHluYW1pYy1pbmZvLmgKQEAgLTI4LDcgKzI4LDcg QEAgc3RhdGljCiBhdXRvCiAjZW5kaWYKIGlubGluZSB2b2lkIF9fYXR0cmlidXRlX18gKCh1bnVz ZWQsIGFsd2F5c19pbmxpbmUpKQotZWxmX2dldF9keW5hbWljX2luZm8gKHN0cnVjdCBsaW5rX21h cCAqbCwgRWxmVyhEeW4pICp0ZW1wKQorZWxmX2dldF9keW5hbWljX2luZm8gKHN0cnVjdCBsaW5r X21hcCAqbCkKIHsKICNpZiBfX0VMRl9OQVRJVkVfQ0xBU1MgPT0gMzIKICAgdHlwZWRlZiBFbGYz Ml9Xb3JkIGRfdGFnX3V0eXBlOwpAQCAtNzEsOSArNzEsOCBAQCBlbGZfZ2V0X2R5bmFtaWNfaW5m byAoc3RydWN0IGxpbmtfbWFwICpsLCBFbGZXKER5bikgKnRlbXApCiAKICNkZWZpbmUgRExfUk9f RFlOX1RFTVBfQ05UCTgKIAotI2lmbmRlZiBETF9ST19EWU5fU0VDVElPTgogICAvKiBEb24ndCBh ZGp1c3QgLmR5bmFtaWMgdW5uZWNlc3NhcmlseS4gICovCi0gIGlmIChsLT5sX2FkZHIgIT0gMCkK KyAgaWYgKGwtPmxfYWRkciAhPSAwICYmICFsLT5sX2xkX3JlYWRvbmx5KQogICAgIHsKICAgICAg IEVsZlcoQWRkcikgbF9hZGRyID0gbC0+bF9hZGRyOwogICAgICAgaW50IGNudCA9IDA7CkBAIC04 MSwxNiArODAsNyBAQCBlbGZfZ2V0X2R5bmFtaWNfaW5mbyAoc3RydWN0IGxpbmtfbWFwICpsLCBF bGZXKER5bikgKnRlbXApCiAjIGRlZmluZSBBREpVU1RfRFlOX0lORk8odGFnKSBcCiAgICAgICBk bwkJCQkJCQkJICAgICAgXAogCWlmIChpbmZvW3RhZ10gIT0gTlVMTCkJCQkJCQkgICAgICBcCi0J ICB7CQkJCQkJCQkgICAgICBcCi0JICAgIGlmICh0ZW1wKQkJCQkJCQkgICAgICBcCi0JICAgICAg ewkJCQkJCQkJICAgICAgXAotCQl0ZW1wW2NudF0uZF90YWcgPSBpbmZvW3RhZ10tPmRfdGFnOwkJ CSAgICAgIFwKLQkJdGVtcFtjbnRdLmRfdW4uZF9wdHIgPSBpbmZvW3RhZ10tPmRfdW4uZF9wdHIg KyBsX2FkZHI7CSAgICAgIFwKLQkJaW5mb1t0YWddID0gdGVtcCArIGNudCsrOwkJCQkgICAgICBc Ci0JICAgICAgfQkJCQkJCQkJICAgICAgXAotCSAgICBlbHNlCQkJCQkJCSAgICAgIFwKLQkgICAg ICBpbmZvW3RhZ10tPmRfdW4uZF9wdHIgKz0gbF9hZGRyOwkJCQkgICAgICBcCi0JICB9CQkJCQkJ CQkgICAgICBcCisgICAgICAgICBpbmZvW3RhZ10tPmRfdW4uZF9wdHIgKz0gbF9hZGRyOwkJCQkg ICAgICBcCiAgICAgICB3aGlsZSAoMCkKIAogICAgICAgQURKVVNUX0RZTl9JTkZPIChEVF9IQVNI KTsKQEAgLTEwOSw3ICs5OSw2IEBAIGVsZl9nZXRfZHluYW1pY19pbmZvIChzdHJ1Y3QgbGlua19t YXAgKmwsIEVsZlcoRHluKSAqdGVtcCkKICMgdW5kZWYgQURKVVNUX0RZTl9JTkZPCiAgICAgICBh c3NlcnQgKGNudCA8PSBETF9ST19EWU5fVEVNUF9DTlQpOwogICAgIH0KLSNlbmRpZgogICBpZiAo aW5mb1tEVF9QTFRSRUxdICE9IE5VTEwpCiAgICAgewogI2lmIEVMRl9NQUNISU5FX05PX1JFTEEK ZGlmZiAtLWdpdCBhL2VsZi9ydGxkLmMgYi9lbGYvcnRsZC5jCmluZGV4IDg3OGU2NDgwZjQuLjg4 YTc4MzI2YzggMTAwNjQ0Ci0tLSBhL2VsZi9ydGxkLmMKKysrIGIvZWxmL3J0bGQuYwpAQCAtNDYz LDYgKzQ2Myw3IEBAIF9kbF9zdGFydF9maW5hbCAodm9pZCAqYXJnLCBzdHJ1Y3QgZGxfc3RhcnRf ZmluYWxfaW5mbyAqaW5mbykKICNpZm5kZWYgRE9OVF9VU0VfQk9PVFNUUkFQX01BUAogICBHTChk bF9ydGxkX21hcCkubF9hZGRyID0gaW5mby0+bC5sX2FkZHI7CiAgIEdMKGRsX3J0bGRfbWFwKS5s X2xkID0gaW5mby0+bC5sX2xkOworICBHTChkbF9ydGxkX21hcCkubF9sZF9yZWFkb25seSA9IGlu Zm8tPmwubF9sZF9yZWFkb25seTsKICAgbWVtY3B5IChHTChkbF9ydGxkX21hcCkubF9pbmZvLCBp bmZvLT5sLmxfaW5mbywKIAkgIHNpemVvZiBHTChkbF9ydGxkX21hcCkubF9pbmZvKTsKICAgR0wo ZGxfcnRsZF9tYXApLmxfbWFjaCA9IGluZm8tPmwubF9tYWNoOwpAQCAtNTQ2LDcgKzU0Nyw3IEBA IF9kbF9zdGFydCAodm9pZCAqYXJnKQogCiAgIC8qIFJlYWQgb3VyIG93biBkeW5hbWljIHNlY3Rp b24gYW5kIGZpbGwgaW4gdGhlIGluZm8gYXJyYXkuICAqLwogICBib290c3RyYXBfbWFwLmxfbGQg PSAodm9pZCAqKSBib290c3RyYXBfbWFwLmxfYWRkciArIGVsZl9tYWNoaW5lX2R5bmFtaWMgKCk7 Ci0gIGVsZl9nZXRfZHluYW1pY19pbmZvICgmYm9vdHN0cmFwX21hcCwgTlVMTCk7CisgIGVsZl9n ZXRfZHluYW1pY19pbmZvICgmYm9vdHN0cmFwX21hcCk7CiAKICNpZiBOT19UTFNfT0ZGU0VUICE9 IDAKICAgYm9vdHN0cmFwX21hcC5sX3Rsc19vZmZzZXQgPSBOT19UTFNfT0ZGU0VUOwpAQCAtMTQ2 OCw2ICsxNDY5LDcgQEAgZGxfbWFpbiAoY29uc3QgRWxmVyhQaGRyKSAqcGhkciwKIAkvKiBUaGlz IHRlbGxzIHVzIHdoZXJlIHRvIGZpbmQgdGhlIGR5bmFtaWMgc2VjdGlvbiwKIAkgICB3aGljaCB0 ZWxscyB1cyBldmVyeXRoaW5nIHdlIG5lZWQgdG8gZG8uICAqLwogCW1haW5fbWFwLT5sX2xkID0g KHZvaWQgKikgbWFpbl9tYXAtPmxfYWRkciArIHBoLT5wX3ZhZGRyOworCW1haW5fbWFwLT5sX2xk X3JlYWRvbmx5ID0gKHBoLT5wX2ZsYWdzICYgUEZfVykgPT0gMDsKIAlicmVhazsKICAgICAgIGNh c2UgUFRfSU5URVJQOgogCS8qIFRoaXMgImludGVycHJldGVyIHNlZ21lbnQiIHdhcyB1c2VkIGJ5 IHRoZSBwcm9ncmFtIGxvYWRlciB0bwpAQCAtMTYxMyw3ICsxNjE1LDcgQEAgZGxfbWFpbiAoY29u c3QgRWxmVyhQaGRyKSAqcGhkciwKICAgaWYgKCEgcnRsZF9pc19tYWluKQogICAgIHsKICAgICAg IC8qIEV4dHJhY3QgdGhlIGNvbnRlbnRzIG9mIHRoZSBkeW5hbWljIHNlY3Rpb24gZm9yIGVhc3kg YWNjZXNzLiAgKi8KLSAgICAgIGVsZl9nZXRfZHluYW1pY19pbmZvIChtYWluX21hcCwgTlVMTCk7 CisgICAgICBlbGZfZ2V0X2R5bmFtaWNfaW5mbyAobWFpbl9tYXApOwogCiAgICAgICAvKiBJZiB0 aGUgbWFpbiBtYXAgaXMgbGliYy5zbywgdXBkYXRlIHRoZSBiYXNlIG5hbWVzcGFjZSB0bwogCSBy ZWZlciB0byB0aGlzIG1hcC4gIElmIGxpYmMuc28gaXMgbG9hZGVkIGxhdGVyLCB0aGlzIGhhcHBl bnMKZGlmZiAtLWdpdCBhL2VsZi9zZXR1cC12ZHNvLmggYi9lbGYvc2V0dXAtdmRzby5oCmluZGV4 IDg2YzQ5MWU0OWMuLmY0NDc0OGJjOTggMTAwNjQ0Ci0tLSBhL2VsZi9zZXR1cC12ZHNvLmgKKysr IGIvZWxmL3NldHVwLXZkc28uaApAQCAtMzMsOCArMzMsNiBAQCBzZXR1cF92ZHNvIChzdHJ1Y3Qg bGlua19tYXAgKm1haW5fbWFwIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwKIAkJCQkgICAgICAg MCwgTE1fSURfQkFTRSk7CiAgIGlmIChfX2dsaWJjX2xpa2VseSAobCAhPSBOVUxMKSkKICAgICB7 Ci0gICAgICBzdGF0aWMgRWxmVyhEeW4pIGR5bl90ZW1wW0RMX1JPX0RZTl9URU1QX0NOVF0gYXR0 cmlidXRlX3JlbHJvOwotCiAgICAgICBsLT5sX3BoZHIgPSAoKGNvbnN0IHZvaWQgKikgR0xSTyhk bF9zeXNpbmZvX2RzbykKIAkJICAgKyBHTFJPKGRsX3N5c2luZm9fZHNvKS0+ZV9waG9mZik7CiAg ICAgICBsLT5sX3BobnVtID0gR0xSTyhkbF9zeXNpbmZvX2RzbyktPmVfcGhudW07CkBAIC00NSw2 ICs0Myw3IEBAIHNldHVwX3Zkc28gKHN0cnVjdCBsaW5rX21hcCAqbWFpbl9tYXAgX19hdHRyaWJ1 dGVfXyAoKHVudXNlZCkpLAogCSAgICB7CiAJICAgICAgbC0+bF9sZCA9ICh2b2lkICopIHBoLT5w X3ZhZGRyOwogCSAgICAgIGwtPmxfbGRudW0gPSBwaC0+cF9tZW1zeiAvIHNpemVvZiAoRWxmVyhE eW4pKTsKKwkgICAgICBsLT5sX2xkX3JlYWRvbmx5ID0gKHBoLT5wX2ZsYWdzICYgUEZfVykgPT0g MDsKIAkgICAgfQogCSAgZWxzZSBpZiAocGgtPnBfdHlwZSA9PSBQVF9MT0FEKQogCSAgICB7CkBA IC02NSw3ICs2NCw3IEBAIHNldHVwX3Zkc28gKHN0cnVjdCBsaW5rX21hcCAqbWFpbl9tYXAgX19h dHRyaWJ1dGVfXyAoKHVudXNlZCkpLAogICAgICAgbC0+bF9tYXBfZW5kICs9IGwtPmxfYWRkcjsK ICAgICAgIGwtPmxfdGV4dF9lbmQgKz0gbC0+bF9hZGRyOwogICAgICAgbC0+bF9sZCA9ICh2b2lk ICopICgoRWxmVyhBZGRyKSkgbC0+bF9sZCArIGwtPmxfYWRkcik7Ci0gICAgICBlbGZfZ2V0X2R5 bmFtaWNfaW5mbyAobCwgZHluX3RlbXApOworICAgICAgZWxmX2dldF9keW5hbWljX2luZm8gKGwp OwogICAgICAgX2RsX3NldHVwX2hhc2ggKGwpOwogICAgICAgbC0+bF9yZWxvY2F0ZWQgPSAxOwog CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbmsuaCBiL2luY2x1ZGUvbGluay5oCmluZGV4IDRhZjE2 Y2I1OTYuLjk2M2E5ZjAxNDcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGluay5oCisrKyBiL2luY2x1 ZGUvbGluay5oCkBAIC0yMDUsNiArMjA1LDcgQEAgc3RydWN0IGxpbmtfbWFwCiAgICAgdW5zaWdu ZWQgaW50IGxfZnJlZV9pbml0ZmluaToxOyAvKiBOb256ZXJvIGlmIGxfaW5pdGZpbmkgY2FuIGJl CiAJCQkJICAgICAgIGZyZWVkLCBpZS4gbm90IGFsbG9jYXRlZCB3aXRoCiAJCQkJICAgICAgIHRo ZSBkdW1teSBtYWxsb2MgaW4gbGQuc28uICAqLworICAgIHVuc2lnbmVkIGludCBsX2xkX3JlYWRv bmx5OwkvKiBOb256ZXJvIGlmIGR5bmFtaWMgc2VjdGlvbiBpcyByZWFkb25seS4gICovCiAKICAg ICAvKiBOT0RFTEVURSBzdGF0dXMgb2YgdGhlIG1hcC4gIE9ubHkgdmFsaWQgZm9yIG1hcHMgb2Yg dHlwZQogICAgICAgIGx0X2xvYWRlZC4gIExhenkgYmluZGluZyBzZXRzIGxfbm9kZWxldGVfYWN0 aXZlIGRpcmVjdGx5LApkaWZmIC0tZ2l0IGEvc3lzZGVwcy9nZW5lcmljL2xkc29kZWZzLmggYi9z eXNkZXBzL2dlbmVyaWMvbGRzb2RlZnMuaAppbmRleCBmZDY3ODcxZjRiLi5lNTFhNjJhNWRhIDEw MDY0NAotLS0gYS9zeXNkZXBzL2dlbmVyaWMvbGRzb2RlZnMuaAorKysgYi9zeXNkZXBzL2dlbmVy aWMvbGRzb2RlZnMuaApAQCAtNzUsMTEgKzc1LDggQEAgX19CRUdJTl9ERUNMUwogICBoYXZlIHRv IGJlIGFjY2Vzc2VkIHZpYSB0aGUgRF9QVFIgbWFjcm8uICBUaGUgbWFjcm8gaXMgbmVlZGVkIHNp bmNlIGZvcgogICBtb3N0IGFyY2hpdGVjdHVyZXMgdGhlIGVudHJ5IGlzIGFscmVhZHkgcmVsb2Nh dGVkIC0gYnV0IGZvciBzb21lIG5vdAogICBhbmQgd2UgbmVlZCB0byByZWxvY2F0ZSBhdCBhY2Nl c3MgdGltZS4gICovCi0jaWZkZWYgRExfUk9fRFlOX1NFQ1RJT04KLSMgZGVmaW5lIERfUFRSKG1h cCwgaSkgKChtYXApLT5pLT5kX3VuLmRfcHRyICsgKG1hcCktPmxfYWRkcikKLSNlbHNlCi0jIGRl ZmluZSBEX1BUUihtYXAsIGkpIChtYXApLT5pLT5kX3VuLmRfcHRyCi0jZW5kaWYKKyNkZWZpbmUg RF9QVFIobWFwLCBpKSBcCisgICgobWFwKS0+aS0+ZF91bi5kX3B0ciArICgobWFwKS0+bF9sZF9y ZWFkb25seSA/IChtYXApLT5sX2FkZHIgOiAwKSkKIAogLyogUmVzdWx0IG9mIHRoZSBsb29rdXAg ZnVuY3Rpb25zIGFuZCBob3cgdG8gcmV0cmlldmUgdGhlIGJhc2UgYWRkcmVzcy4gICovCiB0eXBl ZGVmIHN0cnVjdCBsaW5rX21hcCAqbG9va3VwX3Q7CmRpZmYgLS1naXQgYS9zeXNkZXBzL21pcHMv bGRzb2RlZnMuaCBiL3N5c2RlcHMvbWlwcy9sZHNvZGVmcy5oCmluZGV4IDRkYjdjNjBlMzguLjM2 ZmQwOWE4YmQgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvbWlwcy9sZHNvZGVmcy5oCisrKyBiL3N5c2Rl cHMvbWlwcy9sZHNvZGVmcy5oCkBAIC03NSwxMCArNzUsNiBAQCBzdHJ1Y3QgTGFfbWlwc182NF9y ZXR2YWw7CiAJCQkJCSAgc3RydWN0IExhX21pcHNfNjRfcmV0dmFsICosCSAgICBcCiAJCQkJCSAg Y29uc3QgY2hhciAqKTsKIAotLyogVGhlIE1JUFMgQUJJIHNwZWNpZmllcyB0aGF0IHRoZSBkeW5h bWljIHNlY3Rpb24gaGFzIHRvIGJlIHJlYWQtb25seS4gICovCi0KLSNkZWZpbmUgRExfUk9fRFlO X1NFQ1RJT04gMQotCiAjaW5jbHVkZV9uZXh0IDxsZHNvZGVmcy5oPgogCiAvKiBUaGUgNjQtYml0 IE1JUFMgRUxGIEFCSSB1c2VzIGFuIHVudXN1YWwgcmVsb2MgZm9ybWF0LiAgRWFjaApkaWZmIC0t Z2l0IGEvc3lzZGVwcy9yaXNjdi9sZHNvZGVmcy5oIGIvc3lzZGVwcy9yaXNjdi9sZHNvZGVmcy5o CmluZGV4IDBjNjk2NzE0YTcuLjg5NDdmZmU0YjUgMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvcmlzY3Yv bGRzb2RlZnMuaAorKysgYi9zeXNkZXBzL3Jpc2N2L2xkc29kZWZzLmgKQEAgLTM4LDExICszOCw2 IEBAIHN0cnVjdCBMYV9yaXNjdl9yZXR2YWw7CiAJCQkJICAgICAgIHN0cnVjdCBMYV9yaXNjdl9y ZXR2YWwgKiwJXAogCQkJCSAgICAgICBjb25zdCBjaGFyICopOwogCi0vKiBBbHRob3VnaCB0aGUg UklTQy1WIEFCSSBkb2VzIG5vdCBzcGVjaWZ5IHRoYXQgdGhlIGR5bmFtaWMgc2VjdGlvbiBoYXMK LSAgIHRvIGJlIHJlYWQtb25seSwgaXQgbmVlZHMgdG8gYmUga2VwdCBmb3IgQUJJIGNvbXBhdGli aWxpdHkuICAqLwotCi0jZGVmaW5lIERMX1JPX0RZTl9TRUNUSU9OIDEKLQogI2luY2x1ZGVfbmV4 dCA8bGRzb2RlZnMuaD4KIAogI2VuZGlmCi0tIAoyLjMxLjEKCg== --000000000000a91c6705cc292448--