From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 33729 invoked by alias); 28 Sep 2018 23:05:56 -0000 Mailing-List: contact gnu-gabi-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: gnu-gabi-owner@sourceware.org Received: (qmail 33708 invoked by uid 89); 28 Sep 2018 23:05:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.1 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-23.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,LIKELY_SPAM_BODY,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=52AM, 52am, obligated, archs X-Spam-Status: No, score=-23.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,LIKELY_SPAM_BODY,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-ot1-f66.google.com Received: from mail-ot1-f66.google.com (HELO mail-ot1-f66.google.com) (209.85.210.66) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 28 Sep 2018 23:05:53 +0000 Received: by mail-ot1-f66.google.com with SMTP id h15-v6so7608171otj.5; Fri, 28 Sep 2018 16:05:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=M7aYzew3El5yN3HgVN21OOsxBmjEXdRnacVFCp+z1MQ=; b=SnSKrfDpRSoMmKFFcM9MsxdEOblgDOpZ8Mj934BbtL2YrPKoXLD16REDCgqKYRvQyH ddWpRVtTACMJfZUfWhc5+XxZYr9fZ//ANyBTneu6h95SXQTpTdjNjqE9wtKTHtFccT3L 7bY98U3l8yU2ubGHOoaR/nE+LGqiZlc1zWJSVvc7UYCZzpTZSYUZnEnEaALwN1eJAZpB yXaMbVzF/9t5//KvmSe7YBly1QmMfeGOi5bUlt+N+v1WnemGR4GUwdk3MRRHmWBk7dO6 0Iasi6PhrMEzqdVHqfj3SGnHHsalrBK2QJxWzN+V5qEEGaqRKx8U4aG2NdPLzqL+A+1A I8Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=M7aYzew3El5yN3HgVN21OOsxBmjEXdRnacVFCp+z1MQ=; b=hme3bZCboZFv+svD2xCerUXmKVvKgxP3GJx04rvt2iEwaSyFeX4WkKWbJL1Nl2GNIe k34Zvgx4tG9F1qsbFSGZNmXBpkcCY+ubcl2viUpMc0rjJefMit+VKHzjxQ5Km9jDJc/V tLsSaNo0WGGoc0ZQBangePC1m2FvNEJDBlxkZECO7MsLoKIzeCQG8+hgx1nDEDAqs9CF p3a6nvWt8DIKb4lSqgwPp8mndqjhgwDi7naACrXaxlPNEXcCHYaLp7IiorFwx+J9L2+Y u1mmPPxRalFnfFPK2wSTw5/C/zz4HsE89EsZv/Zy59kUZbAg1StP9zscKuRzorPnIf9/ RVCw== X-Gm-Message-State: ABuFfohXNbbIsFtom5lxwLiOrypZd+tlVueplGaOmZ8uJBgUZ6bb1iEi ctrJAApNJ98AsiotriXMZtpTslA291sdoco+9PpMHw== X-Google-Smtp-Source: ACcGV63XGvDlxjl9PO2052NJfvP3+gc9aDja2v6Hy87Xvw9bynse2C7o4F+gnhvhXkGNWQfcsHFE+FhgrMB2RID8OXc= X-Received: by 2002:a9d:4d01:: with SMTP id n1-v6mr503242otf.121.1538175951759; Fri, 28 Sep 2018 16:05:51 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:4d44:0:0:0:0:0 with HTTP; Fri, 28 Sep 2018 16:05:11 -0700 (PDT) From: "H.J. Lu" Date: Mon, 01 Jan 2018 00:00:00 -0000 Message-ID: Subject: RFC: Add GNU_PROPERTY_NEED_PHDRS To: Rich Felker Cc: Cary Coutant , "Carlos O'Donell" , Florian Weimer , Szabolcs Nagy , Jan Beulich , Binutils , gnu-gabi@sourceware.org Content-Type: multipart/mixed; boundary="000000000000352aa00576f67f6c" X-IsSubscribed: yes X-SW-Source: 2018-q3/txt/msg00031.txt.bz2 --000000000000352aa00576f67f6c Content-Type: text/plain; charset="UTF-8" Content-length: 846 On Fri, Sep 28, 2018 at 7:30 AM, Rich Felker wrote: > On Fri, Sep 28, 2018 at 06:42:52AM -0700, H.J. Lu wrote: > >> Dynamic loader has no problem. The problem is kernel passes >> AT_PHDR to main, which points to the unmmaped address. We can >> ask for kernel change or make kernel happy. > > Kernel change does not help because nobody is obligated to use a new > kernel. Binutils would be producing binaries that don't work on > existing kernels (if the note hack were reverted or if similar changes > were added to other archs without a note hack; right now of course > it's working again). True. >> My current .note.gnu.property patch only works for x86. We can >> add >> >> #define GNU_PROPERTY_PHDRS 3 >> >> so that it can be used for all targets. > > What would this do? > These are what I have in mind. -- H.J. --000000000000352aa00576f67f6c Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Don-t-add-GNU_PROPERTY_X86_FEATURE_2_NEEDED.patch" Content-Disposition: attachment; filename="0001-Don-t-add-GNU_PROPERTY_X86_FEATURE_2_NEEDED.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jmmm6gp00 Content-length: 6206 RnJvbSBhZDhlZjIzMjhiNDJlZTA0MGJhYzY4ZDk3MzY4NjdhMDU1MTQ5N2I1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjUgU2VwIDIwMTggMTI6 MzM6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIIDEvMl0gRG9uJ3QgYWRkIEdO VV9QUk9QRVJUWV9YODZfRkVBVFVSRV8yX05FRURFRAoKRkFJTDogUnVuIFBS IGxkLzIzNDI4IHRlc3QKLS0tCiBiZmQvZWxmeHgteDg2LmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDQ1IC0tLS0tLS0tLS0tLS0tLS0tLS0t CiBsZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcm9wZXJ0eS14ODYtNGEuZCAgICAg ICB8ICAzICstCiBsZC90ZXN0c3VpdGUvbGQteDg2LTY0L3Byb3BlcnR5LXg4 Ni00YS14MzIuZCB8ICAzICstCiBsZC90ZXN0c3VpdGUvbGQteDg2LTY0L3By b3BlcnR5LXg4Ni00YS5kICAgICB8ICAzICstCiA0IGZpbGVzIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvYmZkL2VsZnh4LXg4Ni5jIGIvYmZkL2VsZnh4LXg4Ni5jCmluZGV4IGZj OTliMjhjMDcuLjA1ZjVjNmEyZjkgMTAwNjQ0Ci0tLSBhL2JmZC9lbGZ4eC14 ODYuYworKysgYi9iZmQvZWxmeHgteDg2LmMKQEAgLTI1NDIsNyArMjU0Miw2 IEBAIF9iZmRfeDg2X2VsZl9saW5rX3NldHVwX2dudV9wcm9wZXJ0aWVzCiAg IGNvbnN0IHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhICpiZWQ7CiAgIHVuc2ln bmVkIGludCBjbGFzc19hbGlnbiA9IEFCSV82NF9QIChpbmZvLT5vdXRwdXRf YmZkKSA/IDMgOiAyOwogICB1bnNpZ25lZCBpbnQgZ290X2FsaWduOwotICBi ZmRfYm9vbGVhbiBoYXNfdGV4dCA9IEZBTFNFOwogCiAgIGZlYXR1cmVzID0g MDsKICAgaWYgKGluZm8tPmlidCkKQEAgLTI1NTcsMTQgKzI1NTYsNiBAQCBf YmZkX3g4Nl9lbGZfbGlua19zZXR1cF9nbnVfcHJvcGVydGllcwogICAgIGlm IChiZmRfZ2V0X2ZsYXZvdXIgKHBiZmQpID09IGJmZF90YXJnZXRfZWxmX2Zs YXZvdXIKIAkmJiBiZmRfY291bnRfc2VjdGlvbnMgKHBiZmQpICE9IDApCiAg ICAgICB7Ci0JaWYgKCFoYXNfdGV4dCkKLQkgIHsKLQkgICAgLyogQ2hlY2sg aWYgdGhlcmUgaXMgbm8gbm9uLWVtcHR5IHRleHQgc2VjdGlvbi4gICovCi0J ICAgIHNlYyA9IGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lIChwYmZkLCAiLnRl eHQiKTsKLQkgICAgaWYgKHNlYyAhPSBOVUxMICYmIHNlYy0+c2l6ZSAhPSAw KQotCSAgICAgIGhhc190ZXh0ID0gVFJVRTsKLQkgIH0KLQogCWViZmQgPSBw YmZkOwogCiAJaWYgKGVsZl9wcm9wZXJ0aWVzIChwYmZkKSAhPSBOVUxMKQpA QCAtMjU5MCw0MiArMjU4MSw2IEBAIF9iZmRfeDg2X2VsZl9saW5rX3NldHVw X2dudV9wcm9wZXJ0aWVzCiAJICBwcm9wLT51Lm51bWJlciB8PSBmZWF0dXJl czsKIAkgIHByb3AtPnByX2tpbmQgPSBwcm9wZXJ0eV9udW1iZXI7CiAJfQot ICAgICAgZWxzZSBpZiAoaGFzX3RleHQKLQkgICAgICAgJiYgZWxmX3RkYXRh IChpbmZvLT5vdXRwdXRfYmZkKS0+by0+YnVpbGRfaWQuc2VjID09IE5VTEwK LQkgICAgICAgJiYgIWh0YWItPmVsZi5keW5hbWljX3NlY3Rpb25zX2NyZWF0 ZWQKLQkgICAgICAgJiYgIWluZm8tPnRyYWRpdGlvbmFsX2Zvcm1hdAotCSAg ICAgICAmJiAoaW5mby0+b3V0cHV0X2JmZC0+ZmxhZ3MgJiBEX1BBR0VEKSAh PSAwCi0JICAgICAgICYmIGluZm8tPnNlcGFyYXRlX2NvZGUpCi0JewotCSAg LyogSWYgdGhlIHNlcGFyYXRlIGNvZGUgcHJvZ3JhbSBoZWFkZXIgaXMgbmVl ZGVkLCBtYWtlIHN1cmUKLQkgICAgIHRoYXQgdGhlIGZpcnN0IHJlYWQtb25s eSBQVF9MT0FEIHNlZ21lbnQgaGFzIG5vIGNvZGUgYnkKLQkgICAgIGFkZGlu ZyBhIEdOVV9QUk9QRVJUWV9YODZfRkVBVFVSRV8yX05FRURFRCBub3RlLiAg Ki8KLQkgIGVsZl9wcm9wZXJ0eV9saXN0ICpsaXN0OwotCSAgYmZkX2Jvb2xl YW4gbmVlZF9wcm9wZXJ0eSA9IFRSVUU7Ci0KLQkgIGZvciAobGlzdCA9IGVs Zl9wcm9wZXJ0aWVzIChlYmZkKTsgbGlzdDsgbGlzdCA9IGxpc3QtPm5leHQp Ci0JICAgIHsKLQkgICAgICB1bnNpZ25lZCBpbnQgcHJfdHlwZSA9IGxpc3Qt PnByb3BlcnR5LnByX3R5cGU7Ci0JICAgICAgaWYgKHByX3R5cGUgPT0gR05V X1BST1BFUlRZX1NUQUNLX1NJWkUKLQkJICB8fCBwcl90eXBlID09IEdOVV9Q Uk9QRVJUWV9OT19DT1BZX09OX1BST1RFQ1RFRAotCQkgIHx8IHByX3R5cGUg PT0gR05VX1BST1BFUlRZX1g4Nl9DT01QQVRfSVNBXzFfTkVFREVECi0JCSAg fHwgKHByX3R5cGUgPj0gR05VX1BST1BFUlRZX1g4Nl9VSU5UMzJfT1JfTE8K LQkJICAgICAgJiYgcHJfdHlwZSA8PSBHTlVfUFJPUEVSVFlfWDg2X1VJTlQz Ml9PUl9ISSkpCi0JCXsKLQkJICAvKiBUaGVzZSBwcm9wZXJ0aWVzIHdvbid0 IGJlIHJlbW92ZWQgZHVyaW5nIG1lcmdpbmcuICAqLwotCQkgIG5lZWRfcHJv cGVydHkgPSBGQUxTRTsKLQkJICBicmVhazsKLQkJfQotCSAgICB9Ci0KLQkg IGlmIChuZWVkX3Byb3BlcnR5KQotCSAgICB7Ci0JICAgICAgcHJvcCA9IF9i ZmRfZWxmX2dldF9wcm9wZXJ0eQotCQkoZWJmZCwgR05VX1BST1BFUlRZX1g4 Nl9GRUFUVVJFXzJfTkVFREVELCA0KTsKLQkgICAgICBwcm9wLT51Lm51bWJl ciA9IEdOVV9QUk9QRVJUWV9YODZfRkVBVFVSRV8yX1g4NjsKLQkgICAgICBw cm9wLT5wcl9raW5kID0gcHJvcGVydHlfbnVtYmVyOwotCSAgICB9Ci0JfQog CiAgICAgICAvKiBDcmVhdGUgdGhlIEdOVSBwcm9wZXJ0eSBub3RlIHNlY3Rp b24gaWYgbmVlZGVkLiAgKi8KICAgICAgIGlmIChwcm9wICE9IE5VTEwgJiYg cGJmZCA9PSBOVUxMKQpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWkz ODYvcHJvcGVydHkteDg2LTRhLmQgYi9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9w cm9wZXJ0eS14ODYtNGEuZAppbmRleCA4YWIwMTE1Y2RkLi41ZTJiNDY4OWY4 IDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcm9wZXJ0eS14 ODYtNGEuZAorKysgYi9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcm9wZXJ0eS14 ODYtNGEuZApAQCAtNiw4ICs2LDcgQEAKIAogRGlzcGxheWluZyBub3RlcyBm b3VuZCBpbjogLm5vdGUuZ251LnByb3BlcnR5CiAgIE93bmVyICAgICAgICAg ICAgICAgICBEYXRhIHNpemUJRGVzY3JpcHRpb24KLSAgR05VICAgICAgICAg ICAgICAgICAgMHgwMDAwMDAyYwlOVF9HTlVfUFJPUEVSVFlfVFlQRV8wCisg IEdOVSAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjAJTlRfR05VX1BST1BF UlRZX1RZUEVfMAogICAgICAgUHJvcGVydGllczogbm8gY29weSBvbiBwcm90 ZWN0ZWQgCi0JeDg2IGZlYXR1cmUgbmVlZGVkOiB4ODYKIAl4ODYgSVNBIHVz ZWQ6IDxOb25lPgogCXg4NiBmZWF0dXJlIHVzZWQ6IHg4NgpkaWZmIC0tZ2l0 IGEvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcm9wZXJ0eS14ODYtNGEteDMy LmQgYi9sZC90ZXN0c3VpdGUvbGQteDg2LTY0L3Byb3BlcnR5LXg4Ni00YS14 MzIuZAppbmRleCA5ZGQ2ZTM1NDBlLi43NmY3NGU1ZGVkIDEwMDY0NAotLS0g YS9sZC90ZXN0c3VpdGUvbGQteDg2LTY0L3Byb3BlcnR5LXg4Ni00YS14MzIu ZAorKysgYi9sZC90ZXN0c3VpdGUvbGQteDg2LTY0L3Byb3BlcnR5LXg4Ni00 YS14MzIuZApAQCAtNiw4ICs2LDcgQEAKIAogRGlzcGxheWluZyBub3RlcyBm b3VuZCBpbjogLm5vdGUuZ251LnByb3BlcnR5CiAgIE93bmVyICAgICAgICAg ICAgICAgICBEYXRhIHNpemUJRGVzY3JpcHRpb24KLSAgR05VICAgICAgICAg ICAgICAgICAgMHgwMDAwMDAyYwlOVF9HTlVfUFJPUEVSVFlfVFlQRV8wCisg IEdOVSAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjAJTlRfR05VX1BST1BF UlRZX1RZUEVfMAogICAgICAgUHJvcGVydGllczogbm8gY29weSBvbiBwcm90 ZWN0ZWQgCi0JeDg2IGZlYXR1cmUgbmVlZGVkOiB4ODYKIAl4ODYgSVNBIHVz ZWQ6IDxOb25lPgogCXg4NiBmZWF0dXJlIHVzZWQ6IHg4NgpkaWZmIC0tZ2l0 IGEvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcm9wZXJ0eS14ODYtNGEuZCBi L2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHJvcGVydHkteDg2LTRhLmQKaW5k ZXggNGRjODdhY2Q1Ni4uZTc2YmU3OTZhNiAxMDA2NDQKLS0tIGEvbGQvdGVz dHN1aXRlL2xkLXg4Ni02NC9wcm9wZXJ0eS14ODYtNGEuZAorKysgYi9sZC90 ZXN0c3VpdGUvbGQteDg2LTY0L3Byb3BlcnR5LXg4Ni00YS5kCkBAIC02LDgg KzYsNyBAQAogCiBEaXNwbGF5aW5nIG5vdGVzIGZvdW5kIGluOiAubm90ZS5n bnUucHJvcGVydHkKICAgT3duZXIgICAgICAgICAgICAgICAgIERhdGEgc2l6 ZQlEZXNjcmlwdGlvbgotICBHTlUgICAgICAgICAgICAgICAgICAweDAwMDAw MDM4CU5UX0dOVV9QUk9QRVJUWV9UWVBFXzAKKyAgR05VICAgICAgICAgICAg ICAgICAgMHgwMDAwMDAyOAlOVF9HTlVfUFJPUEVSVFlfVFlQRV8wCiAgICAg ICBQcm9wZXJ0aWVzOiBubyBjb3B5IG9uIHByb3RlY3RlZCAKLQl4ODYgZmVh dHVyZSBuZWVkZWQ6IHg4NgogCXg4NiBJU0EgdXNlZDogPE5vbmU+CiAJeDg2 IGZlYXR1cmUgdXNlZDogeDg2Ci0tIAoyLjE3LjEKCg== --000000000000352aa00576f67f6c Content-Type: text/x-patch; charset="US-ASCII"; name="0002-Add-GNU_PROPERTY_NEED_PHDRS.patch" Content-Disposition: attachment; filename="0002-Add-GNU_PROPERTY_NEED_PHDRS.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jmmm6mks1 Content-length: 9277 RnJvbSBmZTk2NWFiZmFiNjkwOGEyZGUwZWE4ODhjZGZiYWEwMzUyZDljZTAy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjggU2VwIDIwMTggMTU6 NTg6MDkgLTA3MDAKU3ViamVjdDogW1BBVENIIDIvMl0gQWRkIEdOVV9QUk9Q RVJUWV9ORUVEX1BIRFJTCgotLS0KIGJmZC9lbGYtcHJvcGVydGllcy5jIHwg MTI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0KIGJpbnV0aWxzL3JlYWRlbGYuYyAgIHwgICA2ICsrCiBpbmNsdWRlL2Vs Zi9jb21tb24uaCB8ICAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNl cnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9iZmQv ZWxmLXByb3BlcnRpZXMuYyBiL2JmZC9lbGYtcHJvcGVydGllcy5jCmluZGV4 IDg2MWRiNzMxNzAuLmQ5MmZmYzNjZTUgMTAwNjQ0Ci0tLSBhL2JmZC9lbGYt cHJvcGVydGllcy5jCisrKyBiL2JmZC9lbGYtcHJvcGVydGllcy5jCkBAIC0x NzcsNiArMTc3LDE5IEBAIGJhZF9zaXplOgogCSAgICAgIHByb3AtPnByX2tp bmQgPSBwcm9wZXJ0eV9udW1iZXI7CiAJICAgICAgZ290byBuZXh0OwogCisJ ICAgIGNhc2UgR05VX1BST1BFUlRZX05FRURfUEhEUlM6CisJICAgICAgaWYg KGRhdGFzeiAhPSAwKQorCQl7CisJCSAgX2JmZF9lcnJvcl9oYW5kbGVyCisJ CSAgICAoXygid2FybmluZzogJXBCOiBjb3JydXB0IG5lZWQgcGhkcnMgc2l6 ZTogMHgleCIpLAorCQkgICAgIGFiZmQsIGRhdGFzeik7CisJCSAgLyogQ2xl YXIgYWxsIHByb3BlcnRpZXMuICAqLworCQkgIGVsZl9wcm9wZXJ0aWVzIChh YmZkKSA9IE5VTEw7CisJCSAgcmV0dXJuIEZBTFNFOworCQl9CisJICAgICAg LyogSWdub3JlIEdOVV9QUk9QRVJUWV9ORUVEX1BIRFJTIGluIGlucHV0IGZp bGVzLiAgKi8KKwkgICAgICBnb3RvIG5leHQ7CisKIAkgICAgZGVmYXVsdDoK IAkgICAgICBicmVhazsKIAkgICAgfQpAQCAtMjI0LDYgKzIzNyw3IEBAIGVs Zl9tZXJnZV9nbnVfcHJvcGVydGllcyAoc3RydWN0IGJmZF9saW5rX2luZm8g KmluZm8sIGJmZCAqYWJmZCwKICAgICAgIC8qIEZBTExUSFJPVUdIICovCiAK ICAgICBjYXNlIEdOVV9QUk9QRVJUWV9OT19DT1BZX09OX1BST1RFQ1RFRDoK KyAgICBjYXNlIEdOVV9QUk9QRVJUWV9ORUVEX1BIRFJTOgogICAgICAgLyog UmV0dXJuIFRSVUUgaWYgQVBST1AgaXMgTlVMTCB0byBpbmRpY2F0ZSB0aGF0 IEJQUk9QIHNob3VsZAogCSBiZSBhZGRlZCB0byBBQkZELiAgKi8KICAgICAg IHJldHVybiBhcHJvcCA9PSBOVUxMOwpAQCAtNDE0LDM0ICs0MjgsNjIgQEAg X2JmZF9lbGZfbGlua19zZXR1cF9nbnVfcHJvcGVydGllcyAoc3RydWN0IGJm ZF9saW5rX2luZm8gKmluZm8pCiAgICAgPSBnZXRfZWxmX2JhY2tlbmRfZGF0 YSAoaW5mby0+b3V0cHV0X2JmZCk7CiAgIHVuc2lnbmVkIGludCBlbGZjbGFz cyA9IGJlZC0+cy0+ZWxmY2xhc3M7CiAgIGludCBlbGZfbWFjaGluZV9jb2Rl ID0gYmVkLT5lbGZfbWFjaGluZV9jb2RlOwotCi0gIC8qIEZpbmQgdGhlIGZp cnN0IHJlbG9jYXRhYmxlIEVMRiBpbnB1dCB3aXRoIEdOVSBwcm9wZXJ0aWVz LiAgKi8KKyAgYmZkX2Jvb2xlYW4gaGFzX3RleHQgPSBGQUxTRTsKKyAgYmZk ICplbGZfYmZkID0gTlVMTDsKKyAgYXNlY3Rpb24gKmZpcnN0X3BzZWMgPSBO VUxMOworICBiZmRfYm9vbGVhbiBuZWVkX3BoZHJzID0gRkFMU0U7CisKKyAg LyogRmluZCB0aGUgZmlyc3QgcmVsb2NhdGFibGUgRUxGIGlucHV0IGFuZCB0 aGUgZmlyc3QgcmVsb2NhdGFibGUgRUxGCisgICAgIGlucHV0IHdpdGggR05V IHByb3BlcnRpZXMuICBJZ25vcmUgR05VIHByb3BlcnRpZXMgZnJvbSBFTEYg b2JqZWN0cworICAgICB3aXRoIGRpZmZlcmVudCBtYWNoaW5lIGNvZGUgb3Ig Y2xhc3MuICAqLwogICBmb3IgKGFiZmQgPSBpbmZvLT5pbnB1dF9iZmRzOyBh YmZkICE9IE5VTEw7IGFiZmQgPSBhYmZkLT5saW5rLm5leHQpCiAgICAgaWYg KGJmZF9nZXRfZmxhdm91ciAoYWJmZCkgPT0gYmZkX3RhcmdldF9lbGZfZmxh dm91cgogCSYmIChhYmZkLT5mbGFncyAmIERZTkFNSUMpID09IDAKLQkmJiBl bGZfcHJvcGVydGllcyAoYWJmZCkgIT0gTlVMTCkKKwkmJiAoZWxmX21hY2hp bmVfY29kZQorCSAgICA9PSBnZXRfZWxmX2JhY2tlbmRfZGF0YSAoYWJmZCkt PmVsZl9tYWNoaW5lX2NvZGUpCisJJiYgZWxmY2xhc3MgPT0gZ2V0X2VsZl9i YWNrZW5kX2RhdGEgKGFiZmQpLT5zLT5lbGZjbGFzcykKICAgICAgIHsKLQlo YXNfcHJvcGVydGllcyA9IFRSVUU7Ci0KLQkvKiBJZ25vcmUgR05VIHByb3Bl cnRpZXMgZnJvbSBFTEYgb2JqZWN0cyB3aXRoIGRpZmZlcmVudCBtYWNoaW5l Ci0JICAgY29kZSBvciBjbGFzcy4gIEFsc28gc2tpcCBvYmplY3RzIHdpdGhv dXQgYSBHTlVfUFJPUEVSVFkgbm90ZQotCSAgIHNlY3Rpb24uICAqLwotCWlm ICgoZWxmX21hY2hpbmVfY29kZQotCSAgICAgPT0gZ2V0X2VsZl9iYWNrZW5k X2RhdGEgKGFiZmQpLT5lbGZfbWFjaGluZV9jb2RlKQotCSAgICAmJiAoZWxm Y2xhc3MKLQkJPT0gZ2V0X2VsZl9iYWNrZW5kX2RhdGEgKGFiZmQpLT5zLT5l bGZjbGFzcykKLQkgICAgJiYgYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKGFi ZmQsCi0JCQkJCU5PVEVfR05VX1BST1BFUlRZX1NFQ1RJT05fTkFNRSkgIT0g TlVMTAotCSAgICApCisJZWxmX2JmZCA9IGFiZmQ7CisKKwlpZiAoIWhhc190 ZXh0KQorCSAgeworCSAgICAvKiBDaGVjayBpZiB0aGVyZSBpcyBubyBub24t ZW1wdHkgdGV4dCBzZWN0aW9uLiAgKi8KKwkgICAgc2VjID0gYmZkX2dldF9z ZWN0aW9uX2J5X25hbWUgKGFiZmQsICIudGV4dCIpOworCSAgICBpZiAoc2Vj ICE9IE5VTEwgJiYgc2VjLT5zaXplICE9IDApCisJICAgICAgaGFzX3RleHQg PSBUUlVFOworCSAgfQorCisJaWYgKGVsZl9wcm9wZXJ0aWVzIChhYmZkKSAh PSBOVUxMKQogCSAgewotCSAgICAvKiBLZWVwIC5ub3RlLmdudS5wcm9wZXJ0 eSBzZWN0aW9uIGluIEZJUlNUX1BCRkQuICAqLwotCSAgICBmaXJzdF9wYmZk ID0gYWJmZDsKLQkgICAgYnJlYWs7CisJICAgIGhhc19wcm9wZXJ0aWVzID0g VFJVRTsKKworCSAgICAvKiBTa2lwIG9iamVjdHMgd2l0aG91dCBhIEdOVV9Q Uk9QRVJUWSBub3RlIHNlY3Rpb24uICAqLworCSAgICBzZWMgPSBiZmRfZ2V0 X3NlY3Rpb25fYnlfbmFtZSAoYWJmZCwKKwkJCQkJICAgTk9URV9HTlVfUFJP UEVSVFlfU0VDVElPTl9OQU1FKTsKKwkgICAgaWYgKHNlYykKKwkgICAgICB7 CisJCWZpcnN0X3BzZWMgPSBzZWM7CisJCS8qIEtlZXAgLm5vdGUuZ251LnBy b3BlcnR5IHNlY3Rpb24gaW4gRklSU1RfUEJGRC4gICovCisJCWZpcnN0X3Bi ZmQgPSBhYmZkOworCQlicmVhazsKKwkgICAgICB9CiAJICB9CiAgICAgICB9 CiAKLSAgLyogRG8gbm90aGluZyBpZiB0aGVyZSBpcyBubyAubm90ZS5nbnUu cHJvcGVydHkgc2VjdGlvbi4gICovCi0gIGlmICghaGFzX3Byb3BlcnRpZXMp CisgIC8qIElmIHRoZSBzZXBhcmF0ZSBjb2RlIHByb2dyYW0gaGVhZGVyIGlz IG5lZWRlZCwgbWFrZSBzdXJlCisgICAgIHRoYXQgdGhlIGZpcnN0IHJlYWQt b25seSBQVF9MT0FEIHNlZ21lbnQgaGFzIG5vIGNvZGUgYnkKKyAgICAgYWRk aW5nIGEgR05VX1BST1BFUlRZX05FRURfUEhEUlMgcHJvcGVydHkuICAqLwor ICBpZiAoaGFzX3RleHQKKyAgICAgICYmIGVsZl90ZGF0YSAoaW5mby0+b3V0 cHV0X2JmZCktPm8tPmJ1aWxkX2lkLnNlYyA9PSBOVUxMCisgICAgICAmJiAh ZWxmX2hhc2hfdGFibGUgKGluZm8pLT5keW5hbWljX3NlY3Rpb25zX2NyZWF0 ZWQKKyAgICAgICYmICFpbmZvLT50cmFkaXRpb25hbF9mb3JtYXQKKyAgICAg ICYmIChpbmZvLT5vdXRwdXRfYmZkLT5mbGFncyAmIERfUEFHRUQpICE9IDAK KyAgICAgICYmIGluZm8tPnNlcGFyYXRlX2NvZGUpCisgICAgbmVlZF9waGRy cyA9IFRSVUU7CisKKyAgLyogRG8gbm90aGluZyBpZiB0aGVyZSBpcyBubyAu bm90ZS5nbnUucHJvcGVydHkgc2VjdGlvbiBhbmQgd2UgZG9uJ3QKKyAgICAg bmVlZCBhIEdOVV9QUk9QRVJUWV9ORUVEX1BIRFJTIHByb3BlcnR5LiAgKi8K KyAgaWYgKCFoYXNfcHJvcGVydGllcyAmJiAhbmVlZF9waGRycykKICAgICBy ZXR1cm4gTlVMTDsKIAogICAvKiBNZXJnZSAubm90ZS5nbnUucHJvcGVydHkg c2VjdGlvbnMuICAqLwpAQCAtNDg0LDE1ICs1MjYsNTIgQEAgX2JmZF9lbGZf bGlua19zZXR1cF9nbnVfcHJvcGVydGllcyAoc3RydWN0IGJmZF9saW5rX2lu Zm8gKmluZm8pCiAKICAgLyogUmV3cml0ZSAubm90ZS5nbnUucHJvcGVydHkg c2VjdGlvbiBzbyB0aGF0IEdOVSBwcm9wZXJ0aWVzIGFyZQogICAgICBhbHdh eXMgc29ydGVkIGJ5IHR5cGUgZXZlbiBpZiBpbnB1dCBHTlUgcHJvcGVydGll cyBhcmVuJ3Qgc29ydGVkLiAgKi8KLSAgaWYgKGZpcnN0X3BiZmQgIT0gTlVM TCkKKyAgaWYgKGZpcnN0X3BiZmQgIT0gTlVMTCB8fCBuZWVkX3BoZHJzKQog ICAgIHsKICAgICAgIGJmZF9zaXplX3R5cGUgc2l6ZTsKICAgICAgIGJmZF9i eXRlICpjb250ZW50czsKICAgICAgIHVuc2lnbmVkIGludCBhbGlnbl9zaXpl ID0gZWxmY2xhc3MgPT0gRUxGQ0xBU1M2NCA/IDggOiA0OwogCi0gICAgICBz ZWMgPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAoZmlyc3RfcGJmZCwKLQkJ CQkgICAgIE5PVEVfR05VX1BST1BFUlRZX1NFQ1RJT05fTkFNRSk7Ci0gICAg ICBCRkRfQVNTRVJUIChzZWMgIT0gTlVMTCk7CisgICAgICBpZiAobmVlZF9w aGRycykKKwl7CisJICBlbGZfcHJvcGVydHkgKnByb3A7CisKKwkgIGlmIChm aXJzdF9wYmZkKQorCSAgICBzZWMgPSBmaXJzdF9wc2VjOworCSAgZWxzZQor CSAgICB7CisJICAgICAgLyogQ3JlYXRlIHRoZSBHTlUgcHJvcGVydHkgbm90 ZSBzZWN0aW9uIGlmIG5lZWRlZC4gICovCisJICAgICAgc2VjID0gYmZkX21h a2Vfc2VjdGlvbl93aXRoX2ZsYWdzIChlbGZfYmZkLAorCQkJCQkJIE5PVEVf R05VX1BST1BFUlRZX1NFQ1RJT05fTkFNRSwKKwkJCQkJCSAoU0VDX0FMTE9D CisJCQkJCQkgIHwgU0VDX0xPQUQKKwkJCQkJCSAgfCBTRUNfSU5fTUVNT1JZ CisJCQkJCQkgIHwgU0VDX1JFQURPTkxZCisJCQkJCQkgIHwgU0VDX0hBU19D T05URU5UUworCQkJCQkJICB8IFNFQ19EQVRBKSk7CisJICAgICAgaWYgKHNl YyA9PSBOVUxMKQorCQlpbmZvLT5jYWxsYmFja3MtPmVpbmZvIChfKCIlRiVQ OiBmYWlsZWQgdG8gY3JlYXRlIEdOVSBwcm9wZXJ0eSBzZWN0aW9uXG4iKSk7 CisKKwkgICAgICBpZiAoIWJmZF9zZXRfc2VjdGlvbl9hbGlnbm1lbnQgKGVs Zl9iZmQsIHNlYywKKwkJCQkJICAgICAgKGVsZmNsYXNzID09IEVMRkNMQVNT NjQKKwkJCQkJICAgICAgID8gMyA6IDIpKSkKKwkJaW5mby0+Y2FsbGJhY2tz LT5laW5mbyAoXygiJUYlcEE6IGZhaWxlZCB0byBhbGlnbiBzZWN0aW9uXG4i KSwKKwkJCQkJZmlyc3RfcHNlYyk7CisKKwkgICAgICBlbGZfc2VjdGlvbl90 eXBlIChzZWMpID0gU0hUX05PVEU7CisJICAgICAgZmlyc3RfcGJmZCA9IGVs Zl9iZmQ7CisJICAgIH0KKworCSAgaWYgKGVsZl9wcm9wZXJ0aWVzIChmaXJz dF9wYmZkKSA9PSBOVUxMKQorCSAgICB7CisJICAgICAgcHJvcCA9IF9iZmRf ZWxmX2dldF9wcm9wZXJ0eSAoZmlyc3RfcGJmZCwKKwkJCQkJICAgIEdOVV9Q Uk9QRVJUWV9ORUVEX1BIRFJTLAorCQkJCQkgICAgMCk7CisJICAgICAgcHJv cC0+cHJfa2luZCA9IHByb3BlcnR5X251bWJlcjsKKwkgICAgfQorCX0KKyAg ICAgIGVsc2UKKwlzZWMgPSBmaXJzdF9wc2VjOwogCiAgICAgICAvKiBVcGRh dGUgc3RhY2sgc2l6ZSBpbiAubm90ZS5nbnUucHJvcGVydHkgd2l0aCAteiBz dGFjay1zaXplPU4KIAkgaWYgTiA+IDAuICAqLwpkaWZmIC0tZ2l0IGEvYmlu dXRpbHMvcmVhZGVsZi5jIGIvYmludXRpbHMvcmVhZGVsZi5jCmluZGV4IDkx ZjRjMTIyODYuLmU1NGY0MDFmMGQgMTAwNjQ0Ci0tLSBhL2JpbnV0aWxzL3Jl YWRlbGYuYworKysgYi9iaW51dGlscy9yZWFkZWxmLmMKQEAgLTE3Mzc4LDYg KzE3Mzc4LDEyIEBAIHByaW50X2dudV9wcm9wZXJ0eV9ub3RlIChGaWxlZGF0 YSAqIGZpbGVkYXRhLCBFbGZfSW50ZXJuYWxfTm90ZSAqIHBub3RlKQogCQlw cmludGYgKF8oIjxjb3JydXB0IGxlbmd0aDogJSN4PiAiKSwgZGF0YXN6KTsK IAkgICAgICBnb3RvIG5leHQ7CiAKKwkgICAgY2FzZSBHTlVfUFJPUEVSVFlf TkVFRF9QSERSUzoKKwkgICAgICBwcmludGYgKCJuZWVkIHBoZHJzICIpOwor CSAgICAgIGlmIChkYXRhc3opCisJCXByaW50ZiAoXygiPGNvcnJ1cHQgbGVu Z3RoOiAlI3g+ICIpLCBkYXRhc3opOworCSAgICAgIGdvdG8gbmV4dDsKKwog CSAgICBkZWZhdWx0OgogCSAgICAgIGJyZWFrOwogCSAgICB9CmRpZmYgLS1n aXQgYS9pbmNsdWRlL2VsZi9jb21tb24uaCBiL2luY2x1ZGUvZWxmL2NvbW1v bi5oCmluZGV4IGUxOTQyNzQzMDUuLjE0OWRkOTFlNGUgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvZWxmL2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvZWxmL2NvbW1v bi5oCkBAIC03MzgsNiArNzM4LDcgQEAKIC8qIFZhbHVlcyB1c2VkIGluIEdO VSAubm90ZS5nbnUucHJvcGVydHkgbm90ZXMgKE5UX0dOVV9QUk9QRVJUWV9U WVBFXzApLiAgKi8KICNkZWZpbmUgR05VX1BST1BFUlRZX1NUQUNLX1NJWkUJ CQkxCiAjZGVmaW5lIEdOVV9QUk9QRVJUWV9OT19DT1BZX09OX1BST1RFQ1RF RAkyCisjZGVmaW5lIEdOVV9QUk9QRVJUWV9ORUVEX1BIRFJTCQkJMwogCiAv KiBQcm9jZXNzb3Itc3BlY2lmaWMgc2VtYW50aWNzLCBsbyAqLwogI2RlZmlu ZSBHTlVfUFJPUEVSVFlfTE9QUk9DICAweGMwMDAwMDAwCi0tIAoyLjE3LjEK Cg== --000000000000352aa00576f67f6c--