From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 112854 invoked by alias); 24 Aug 2016 14:55:59 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 112784 invoked by uid 89); 24 Aug 2016 14:55:58 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.4 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=H*RU:sk:smtprel, Hx-spam-relays-external:sk:smtprel, HX-HELO:sk:smtprel, miranda X-HELO: smtprelay.synopsys.com Received: from us01smtprelay-2.synopsys.com (HELO smtprelay.synopsys.com) (198.182.47.9) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 24 Aug 2016 14:55:49 +0000 Received: from us02secmta2.synopsys.com (us02secmta2.synopsys.com [10.12.235.98]) by smtprelay.synopsys.com (Postfix) with ESMTP id 3C44924E156F; Wed, 24 Aug 2016 07:55:48 -0700 (PDT) Received: from us02secmta2.internal.synopsys.com (us02secmta2.internal.synopsys.com [127.0.0.1]) by us02secmta2.internal.synopsys.com (Service) with ESMTP id 0607355F15; Wed, 24 Aug 2016 07:55:48 -0700 (PDT) Received: from mailhost.synopsys.com (mailhost1.synopsys.com [10.12.238.239]) by us02secmta2.internal.synopsys.com (Service) with ESMTP id C6D8D55F13; Wed, 24 Aug 2016 07:55:47 -0700 (PDT) Received: from mailhost.synopsys.com (localhost [127.0.0.1]) by mailhost.synopsys.com (Postfix) with ESMTP id A51B9BBD; Wed, 24 Aug 2016 07:55:47 -0700 (PDT) Received: from US01WEHTC3.internal.synopsys.com (us01wehtc3.internal.synopsys.com [10.15.84.232]) by mailhost.synopsys.com (Postfix) with ESMTP id 97DB5BB9; Wed, 24 Aug 2016 07:55:47 -0700 (PDT) Received: from DE02WEHTCB.internal.synopsys.com (10.225.19.94) by US01WEHTC3.internal.synopsys.com (10.15.84.232) with Microsoft SMTP Server (TLS) id 14.3.266.1; Wed, 24 Aug 2016 07:54:53 -0700 Received: from DE02WEMBXB.internal.synopsys.com ([fe80::95ce:118a:8321:a099]) by DE02WEHTCB.internal.synopsys.com ([::1]) with mapi id 14.03.0266.001; Wed, 24 Aug 2016 16:54:51 +0200 From: Cupertino Miranda To: Nick Clifton , Cupertino Miranda , "binutils@sourceware.org" CC: "Francois.Bedard@synopsys.com" , "Claudiu.Zissulescu@synopsys.com" Subject: Re: [PATCH 3/5] Several fixes related to ARC PIE support. Date: Wed, 24 Aug 2016 14:55:00 -0000 Message-ID: References: <20160816155116.23937-1-cmiranda@synopsys.com> <20160816155116.23937-4-cmiranda@synopsys.com> <490c7748-916e-4b94-2aa7-e4ea13d68a8b@redhat.com> Content-Type: multipart/mixed; boundary="_002_EB86EB452ADE4B44B294F7149B8A2777022063BCDE02WEMBXBinter_" MIME-Version: 1.0 X-SW-Source: 2016-08/txt/msg00223.txt.bz2 --_002_EB86EB452ADE4B44B294F7149B8A2777022063BCDE02WEMBXBinter_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 1886 Hi Nick, New patch attached. I noticed that in the patch I also did not include the hash table free function. Now it is correct. On 08/19/2016 09:53 AM, Nick Clifton wrote: > One minor point and one question: > >> +/* Create an X86-64 ELF linker hash table. */ > Cut and paste typo - I assume that you meant 'Create an ARC ELF linker ha= sh table'. Indeed, cut and paste typo. >> @@ -2020,17 +2148,21 @@ elf_arc_finish_dynamic_symbol (bfd * output_bfd, >>=20=20 >> if (h->needs_copy) >> { >> + struct elf_arc_link_hash_table *arc_htab =3D elf_arc_hash_table (= info); >> + >> + if (h->dynindx =3D=3D -1 >> + || (h->root.type !=3D bfd_link_hash_defined >> + && h->root.type !=3D bfd_link_hash_defweak) >> + || arc_htab->srelbss =3D=3D NULL) >> + abort (); > I am not sure if an abort is the correct function to call here. Abort sh= ould > only be called if there is an internal error in the library. If it is po= ssible > for bad user input to trigger the situation then an error message should = be > generated instead. I have not followed through all the logic, so maybe t= he > conditions being tested should all be satisfied by earlier parts in the l= inking > process, (in which case a BFD_ASSERT would be better than a direct call t= o abort), > but it seems to me that it might be possible for a dynamic symbol to beco= me=20 > undefined somehow, and in that case an error message would be more approp= riate. IMHO, the abort is really just a failsafe detection to validate that we can indeed do the copying, if we do not abort we will segm fault or generate bad code. To be honest, I would not bet on the correctness of this needs_copy conditioning, but a priori it should verify that all the requirements for the copy are met. If not it should be verified and reported before this point. Looking forward for your comments. Cheers, Cupertino --_002_EB86EB452ADE4B44B294F7149B8A2777022063BCDE02WEMBXBinter_ Content-Type: text/x-patch; name="0003-Several-fixes-related-to-ARC-PIE-support.patch" Content-Description: 0003-Several-fixes-related-to-ARC-PIE-support.patch Content-Disposition: attachment; filename="0003-Several-fixes-related-to-ARC-PIE-support.patch"; size=9748; creation-date="Wed, 24 Aug 2016 14:54:50 GMT"; modification-date="Wed, 24 Aug 2016 14:54:50 GMT" Content-Transfer-Encoding: base64 Content-length: 13217 RnJvbSAxYjczNmU5MzE0NjU0NWQzZGIzOTIyYmUyYTllZTEyN2JiZDM4ZWIy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDdXBlcnRpbm8gTWly YW5kYSA8Y21pcmFuZGFAc3lub3BzeXMuY29tPgpEYXRlOiBXZWQsIDEzIEp1 bCAyMDE2IDE4OjA0OjIwICswMjAwClN1YmplY3Q6IFtQQVRDSCAzLzVdIFNl dmVyYWwgZml4ZXMgcmVsYXRlZCB0byBBUkMgUElFIHN1cHBvcnQuCgpGaXhl ZCBjb25kaXRpb25zIHJlbGF0ZWQgdG8gZHluYW1pYyByZWxvY3MgcmVsYXRp dmUgb2Zmc2V0IHBhdGNoaW5nLgpBZGRlZCBhcmNfbGlua19oYXNoX3RhYmxl IHRvIGJlIGFibGUgdG8gYWx3YXlzIGdlbmVyYXRlIGFuZCB0cmFjawoucmVs YS5ic3Mgc2VjdGlvbi4KCmJmZC9DaGFuZ2VMb2c6CgpDdXBlcnRpbm8gTWly YW5kYSAgPGNtaXJhbmRhQHN5bm9wc3lzLmNvbT4KCgllbGYtYmZkLmg6IEFk ZGVkIEFSQ19FTEZfREFUQSB0byBlbnVtIGVsZl90YXJnZXRfaWQuCgllbGYz Mi1hcmMuYyAoc3RydWN0IGVsZl9hcmNfbGlua19oYXNoX2VudHJ5KTogQWRk ZWQuCgkoc3RydWN0IGVsZl9hcmNfbGlua19oYXNoX3RhYmxlKTogTGlrZXdp c2UuCgkoZWxmX2FyY19saW5rX2hhc2hfbmV3ZnVuYyk6IExpa2V3aXNlLgoJ KGVsZl9hcmNfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBMaWtld2lzZS4KCShh cmNfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCShl bGZfYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBGaXhlZCBjb25kaXRpb25zIHJl bGF0ZWQgdG8gZHluYW1pYwoJKGVsZl9hcmNfY2hlY2tfcmVsb2NzKTogTGlr ZXdpc2UuCgkoYXJjX2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IEFk ZGVkCgkoZWxmX2FyY19hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBDaGFuZ2Vk IGFjY2VzcyB0byAucmVsYS5ic3MgdG8gYmUgZG9uZQoJdGhyb3VnaCB0aGUg aGFzaCB0YWJsZS4KLS0tCiBiZmQvZWxmLWJmZC5oICAgfCAgIDEgKwogYmZk L2VsZjMyLWFyYy5jIHwgMTkwICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDE1MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9iZmQvZWxmLWJmZC5oIGIvYmZkL2VsZi1iZmQuaAppbmRleCA0 MjRlYTMwLi5kMThkZjE3IDEwMDY0NAotLS0gYS9iZmQvZWxmLWJmZC5oCisr KyBiL2JmZC9lbGYtYmZkLmgKQEAgLTQ0NCw2ICs0NDQsNyBAQCBlbnVtIGVs Zl90YXJnZXRfaWQKIHsKICAgQUFSQ0g2NF9FTEZfREFUQSA9IDEsCiAgIEFM UEhBX0VMRl9EQVRBLAorICBBUkNfRUxGX0RBVEEsCiAgIEFSTV9FTEZfREFU QSwKICAgQVZSX0VMRl9EQVRBLAogICBCRklOX0VMRl9EQVRBLApkaWZmIC0t Z2l0IGEvYmZkL2VsZjMyLWFyYy5jIGIvYmZkL2VsZjMyLWFyYy5jCmluZGV4 IDAwODI4YmUuLjA4ZGQ4NjcgMTAwNjQ0Ci0tLSBhL2JmZC9lbGYzMi1hcmMu YworKysgYi9iZmQvZWxmMzItYXJjLmMKQEAgLTMwMSw2ICszMDEsOTIgQEAg c3RydWN0IGFyY19yZWxvY19tYXAKICAgdW5zaWduZWQgY2hhcgkJICAgIGVs Zl9yZWxvY192YWw7CiB9OwogCisvKiBBUkMgRUxGIGxpbmtlciBoYXNoIGVu dHJ5LiAgKi8KK3N0cnVjdCBlbGZfYXJjX2xpbmtfaGFzaF9lbnRyeQorewor ICBzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSByb290OworCisgIC8qIFRy YWNrIGR5bmFtaWMgcmVsb2NzIGNvcGllZCBmb3IgdGhpcyBzeW1ib2wuICAq LworICBzdHJ1Y3QgZWxmX2R5bl9yZWxvY3MgKmR5bl9yZWxvY3M7Cit9Owor CisvKiBBUkMgRUxGIGxpbmtlciBoYXNoIHRhYmxlLiAgKi8KK3N0cnVjdCBl bGZfYXJjX2xpbmtfaGFzaF90YWJsZQoreworICBzdHJ1Y3QgZWxmX2xpbmtf aGFzaF90YWJsZSBlbGY7CisKKyAgLyogU2hvcnQtY3V0cyB0byBnZXQgdG8g ZHluYW1pYyBsaW5rZXIgc2VjdGlvbnMuICAqLworICBhc2VjdGlvbiAqc3Jl bGJzczsKK307CisKK3N0YXRpYyBzdHJ1Y3QgYmZkX2hhc2hfZW50cnkgKgor ZWxmX2FyY19saW5rX2hhc2hfbmV3ZnVuYyAoc3RydWN0IGJmZF9oYXNoX2Vu dHJ5ICplbnRyeSwKKwkJCSAgIHN0cnVjdCBiZmRfaGFzaF90YWJsZSAqdGFi bGUsCisJCQkgICBjb25zdCBjaGFyICpzdHJpbmcpCit7CisgIC8qIEFsbG9j YXRlIHRoZSBzdHJ1Y3R1cmUgaWYgaXQgaGFzIG5vdCBhbHJlYWR5IGJlZW4g YWxsb2NhdGVkIGJ5IGEKKyAgICAgc3ViY2xhc3MuICAqLworICBpZiAoZW50 cnkgPT0gTlVMTCkKKyAgICB7CisgICAgICBlbnRyeSA9IChzdHJ1Y3QgYmZk X2hhc2hfZW50cnkgKikKKwkgIGJmZF9oYXNoX2FsbG9jYXRlICh0YWJsZSwK KwkJCSAgICAgc2l6ZW9mIChzdHJ1Y3QgZWxmX2FyY19saW5rX2hhc2hfZW50 cnkpKTsKKyAgICAgIGlmIChlbnRyeSA9PSBOVUxMKQorCXJldHVybiBlbnRy eTsKKyAgICB9CisKKyAgLyogQ2FsbCB0aGUgYWxsb2NhdGlvbiBtZXRob2Qg b2YgdGhlIHN1cGVyY2xhc3MuICAqLworICBlbnRyeSA9IF9iZmRfZWxmX2xp bmtfaGFzaF9uZXdmdW5jIChlbnRyeSwgdGFibGUsIHN0cmluZyk7CisgIGlm IChlbnRyeSAhPSBOVUxMKQorICAgIHsKKyAgICAgIHN0cnVjdCBlbGZfYXJj X2xpbmtfaGFzaF9lbnRyeSAqZWg7CisKKyAgICAgIGVoID0gKHN0cnVjdCBl bGZfYXJjX2xpbmtfaGFzaF9lbnRyeSAqKSBlbnRyeTsKKyAgICAgIGVoLT5k eW5fcmVsb2NzID0gTlVMTDsKKyAgICB9CisKKyAgcmV0dXJuIGVudHJ5Owor fQorCisvKiBEZXN0cm95IGFuIEFSQyBFTEYgbGlua2VyIGhhc2ggdGFibGUu ICAqLworc3RhdGljIHZvaWQKK2VsZl9hcmNfbGlua19oYXNoX3RhYmxlX2Zy ZWUgKGJmZCAqb2JmZCkKK3sKKyAgX2JmZF9lbGZfbGlua19oYXNoX3RhYmxl X2ZyZWUgKG9iZmQpOworfQorCisvKiBDcmVhdGUgYW4gQVJDIEVMRiBsaW5r ZXIgaGFzaCB0YWJsZS4gICovCisKK3N0YXRpYyBzdHJ1Y3QgYmZkX2xpbmtf aGFzaF90YWJsZSAqCithcmNfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUg KGJmZCAqYWJmZCkKK3sKKyAgc3RydWN0IGVsZl9hcmNfbGlua19oYXNoX3Rh YmxlICpyZXQ7CisKKyAgcmV0ID0gKHN0cnVjdCBlbGZfYXJjX2xpbmtfaGFz aF90YWJsZSAqKSBiZmRfem1hbGxvYyAoc2l6ZW9mICgqcmV0KSk7CisgIGlm IChyZXQgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVMTDsKKworICBpZiAoIV9i ZmRfZWxmX2xpbmtfaGFzaF90YWJsZV9pbml0ICgmcmV0LT5lbGYsIGFiZmQs CisJCQkJICAgICAgZWxmX2FyY19saW5rX2hhc2hfbmV3ZnVuYywKKwkJCQkg ICAgICBzaXplb2YgKHN0cnVjdCBlbGZfYXJjX2xpbmtfaGFzaF9lbnRyeSks CisJCQkJICAgICAgQVJDX0VMRl9EQVRBKSkKKyAgICB7CisgICAgICBmcmVl IChyZXQpOworICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgIHJldC0+ c3JlbGJzcyA9IE5VTEw7CisKKyAgcmV0LT5lbGYuaW5pdF9nb3RfcmVmY291 bnQucmVmY291bnQgPSAwOworICByZXQtPmVsZi5pbml0X2dvdF9yZWZjb3Vu dC5nbGlzdCA9IE5VTEw7CisgIHJldC0+ZWxmLmluaXRfZ290X29mZnNldC5v ZmZzZXQgPSAwOworICByZXQtPmVsZi5pbml0X2dvdF9vZmZzZXQuZ2xpc3Qg PSBOVUxMOworCisgIHJldC0+ZWxmLnJvb3QuaGFzaF90YWJsZV9mcmVlID0g ZWxmX2FyY19saW5rX2hhc2hfdGFibGVfZnJlZTsKKworICByZXR1cm4gJnJl dC0+ZWxmLnJvb3Q7Cit9CisKICNkZWZpbmUgQVJDX1JFTE9DX0hPV1RPKFRZ UEUsIFZBTFVFLCBTSVpFLCBCSVRTSVpFLCBSRUxPQ19GVU5DVElPTiwgT1ZF UkZMT1csIEZPUk1VTEEpIFwKICAgeyBCRkRfUkVMT0NfIyNUWVBFLCBSXyMj VFlQRSB9LAogc3RhdGljIGNvbnN0IHN0cnVjdCBhcmNfcmVsb2NfbWFwIGFy Y19yZWxvY19tYXBbXSA9CkBAIC0xMjczLDcgKzEzNTksNyBAQCBlbGZfYXJj X3JlbG9jYXRlX3NlY3Rpb24gKGJmZCAqCQkgICAgICAgICAgb3V0cHV0X2Jm ZCwKIAogCQkgIHJlbG9jX2RhdGEuc2hvdWxkX3JlbG9jYXRlID0gVFJVRTsK IAkJfQotCSAgICAgIGVsc2UgaWYgKCFiZmRfbGlua19waWMgKGluZm8pKQor CSAgICAgIGVsc2UgaWYgKCFiZmRfbGlua19waWMgKGluZm8pIHx8IGJmZF9s aW5rX2V4ZWN1dGFibGUgKGluZm8pKQogCQkoKmluZm8tPmNhbGxiYWNrcy0+ dW5kZWZpbmVkX3N5bWJvbCkKIAkJICAoaW5mbywgaC0+cm9vdC5yb290LnN0 cmluZywgaW5wdXRfYmZkLCBpbnB1dF9zZWN0aW9uLAogCQkgICByZWwtPnJf b2Zmc2V0LCBUUlVFKTsKQEAgLTEzMTcsNyArMTQwMyw3IEBAIGVsZl9hcmNf cmVsb2NhdGVfc2VjdGlvbiAoYmZkICoJCSAgICAgICAgICBvdXRwdXRfYmZk LAogCSAgY2FzZSBSX0FSQ18zMl9NRToKIAkgIGNhc2UgUl9BUkNfUEMzMjoK IAkgIGNhc2UgUl9BUkNfMzJfUENSRUw6Ci0JICAgIGlmICgoYmZkX2xpbmtf cGljIChpbmZvKSkvLyB8fCBiZmRfbGlua19waWUgKGluZm8pKQorCSAgICBp ZiAoKGJmZF9saW5rX3BpYyAoaW5mbykpCiAJCSYmICgocl90eXBlICE9IFJf QVJDX1BDMzIgJiYgcl90eXBlICE9IFJfQVJDXzMyX1BDUkVMKQogCQkgICAg fHwgKGggIT0gTlVMTAogCQkJJiYgaC0+ZHluaW5keCAhPSAtMQpAQCAtMTQ3 MCw2ICsxNTU2LDQ5IEBAIGVsZl9hcmNfcmVsb2NhdGVfc2VjdGlvbiAoYmZk ICoJCSAgICAgICAgICBvdXRwdXRfYmZkLAogICByZXR1cm4gVFJVRTsKIH0K IAorI2RlZmluZSBlbGZfYXJjX2hhc2hfdGFibGUocCkgXAorICAgIChlbGZf aGFzaF90YWJsZV9pZCAoKHN0cnVjdCBlbGZfbGlua19oYXNoX3RhYmxlICop ICgocCktPmhhc2gpKSBcCisgID09IEFSQ19FTEZfREFUQSA/ICgoc3RydWN0 IGVsZl9hcmNfbGlua19oYXNoX3RhYmxlICopICgocCktPmhhc2gpKSA6IE5V TEwpCisKKy8qIENyZWF0ZSAucGx0LCAucmVsYS5wbHQsIC5nb3QsIC5nb3Qu cGx0LCAucmVsYS5nb3QsIC5keW5ic3MsIGFuZAorICAgLnJlbGEuYnNzIHNl Y3Rpb25zIGluIERZTk9CSiwgYW5kIHNldCB1cCBzaG9ydGN1dHMgdG8gdGhl bSBpbiBvdXIKKyAgIGhhc2ggdGFibGUuICAqLworCitzdGF0aWMgYmZkX2Jv b2xlYW4KK2FyY19lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMgKGJmZCAq ZHlub2JqLAorCQkJCSAgICBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykK K3sKKyAgc3RydWN0IGVsZl9hcmNfbGlua19oYXNoX3RhYmxlICpodGFiOwor CisgIGlmICghX2JmZF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMgKGR5 bm9iaiwgaW5mbykpCisgICAgcmV0dXJuIEZBTFNFOworCisgIGh0YWIgPSBl bGZfYXJjX2hhc2hfdGFibGUgKGluZm8pOworICBpZiAoaHRhYiA9PSBOVUxM KQorICAgIHJldHVybiBGQUxTRTsKKworICBpZiAoYmZkX2xpbmtfZXhlY3V0 YWJsZSAoaW5mbykpCisgICAgeworICAgICAgLyogQWx3YXlzIGFsbG93IGNv cHkgcmVsb2NzIGZvciBidWlsZGluZyBleGVjdXRhYmxlcy4gICovCisgICAg ICBhc2VjdGlvbiAqcyA9IGJmZF9nZXRfbGlua2VyX3NlY3Rpb24gKGR5bm9i aiwgIi5yZWxhLmJzcyIpOworICAgICAgaWYgKHMgPT0gTlVMTCkKKwl7CisJ ICBjb25zdCBzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSAqYmVkID0gZ2V0X2Vs Zl9iYWNrZW5kX2RhdGEgKGR5bm9iaik7CisJICBzID0gYmZkX21ha2Vfc2Vj dGlvbl9hbnl3YXlfd2l0aF9mbGFncyAoZHlub2JqLAorCQkJCQkJICAiLnJl bGEuYnNzIiwKKwkJCQkJCSAgKGJlZC0+ZHluYW1pY19zZWNfZmxhZ3MKKwkJ CQkJCSAgIHwgU0VDX1JFQURPTkxZKSk7CisJICBpZiAocyA9PSBOVUxMCisJ ICAgICAgfHwgISBiZmRfc2V0X3NlY3Rpb25fYWxpZ25tZW50IChkeW5vYmos IHMsCisJCQkJCSAgICAgIGJlZC0+cy0+bG9nX2ZpbGVfYWxpZ24pKQorCSAg ICByZXR1cm4gRkFMU0U7CisJfQorICAgICAgaHRhYi0+c3JlbGJzcyA9IHM7 CisgICAgfQorCisgIHJldHVybiBUUlVFOworfQorCiBzdGF0aWMgc3RydWN0 IGR5bmFtaWNfc2VjdGlvbnMKIGFyY19jcmVhdGVfZHluYW1pY19zZWN0aW9u cyAoYmZkICogYWJmZCwgc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pCiB7 CkBAIC0xNjE1LDEwICsxNzQ0LDkgQEAgZWxmX2FyY19jaGVja19yZWxvY3Mg KGJmZCAqCQkJIGFiZmQsCiAJICAgIC8qIEZBTExUSFJPVUdIICovCiAJICBj YXNlIFJfQVJDX1BDMzI6CiAJICBjYXNlIFJfQVJDXzMyX1BDUkVMOgotCSAg ICBpZiAoKGJmZF9saW5rX3BpYyAoaW5mbykpLy8gfHwgYmZkX2xpbmtfcGll IChpbmZvKSkKKwkgICAgaWYgKChiZmRfbGlua19waWMgKGluZm8pKQogCQkm JiAoKHJfdHlwZSAhPSBSX0FSQ19QQzMyICYmIHJfdHlwZSAhPSBSX0FSQ18z Ml9QQ1JFTCkKIAkJICAgIHx8IChoICE9IE5VTEwKLQkJCSYmIGgtPmR5bmlu ZHggIT0gLTEKIAkJCSYmICghaW5mby0+c3ltYm9saWMgfHwgIWgtPmRlZl9y ZWd1bGFyKSkpKQogCSAgICAgIHsKIAkJaWYgKHNyZWxvYyA9PSBOVUxMKQpA QCAtMTk2NywxNCArMjA5NSwxNCBAQCBlbGZfYXJjX2FkanVzdF9keW5hbWlj X3N5bWJvbCAoc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8sCiAgICAgIC5y ZWxhLmJzcyBzZWN0aW9uIHdlIGFyZSBnb2luZyB0byB1c2UuICAqLwogICBp ZiAoKGgtPnJvb3QudS5kZWYuc2VjdGlvbi0+ZmxhZ3MgJiBTRUNfQUxMT0Mp ICE9IDApCiAgICAgewotICAgICAgYXNlY3Rpb24gKnNyZWw7CisgICAgICBz dHJ1Y3QgZWxmX2FyY19saW5rX2hhc2hfdGFibGUgKmFyY19odGFiID0gZWxm X2FyY19oYXNoX3RhYmxlIChpbmZvKTsKIAotICAgICAgc3JlbCA9IGJmZF9n ZXRfc2VjdGlvbl9ieV9uYW1lIChkeW5vYmosICIucmVsYS5ic3MiKTsKLSAg ICAgIEJGRF9BU1NFUlQgKHNyZWwgIT0gTlVMTCk7Ci0gICAgICBzcmVsLT5z aXplICs9IHNpemVvZiAoRWxmMzJfRXh0ZXJuYWxfUmVsYSk7CisgICAgICBC RkRfQVNTRVJUIChhcmNfaHRhYi0+c3JlbGJzcyAhPSBOVUxMKTsKKyAgICAg IGFyY19odGFiLT5zcmVsYnNzLT5zaXplICs9IHNpemVvZiAoRWxmMzJfRXh0 ZXJuYWxfUmVsYSk7CiAgICAgICBoLT5uZWVkc19jb3B5ID0gMTsKICAgICB9 CiAKKyAgLyogVE9ETzogTW92ZSB0aGlzIGFsc28gdG8gYXJjX2hhc2hfdGFi bGUuICAqLwogICBzID0gYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKGR5bm9i aiwgIi5keW5ic3MiKTsKICAgQkZEX0FTU0VSVCAocyAhPSBOVUxMKTsKIApA QCAtMjAyMCwxNyArMjE0OCwyMSBAQCBlbGZfYXJjX2ZpbmlzaF9keW5hbWlj X3N5bWJvbCAoYmZkICogb3V0cHV0X2JmZCwKIAogICBpZiAoaC0+bmVlZHNf Y29weSkKICAgICB7CisgICAgICBzdHJ1Y3QgZWxmX2FyY19saW5rX2hhc2hf dGFibGUgKmFyY19odGFiID0gZWxmX2FyY19oYXNoX3RhYmxlIChpbmZvKTsK KworICAgICAgaWYgKGgtPmR5bmluZHggPT0gLTEKKwkgIHx8IChoLT5yb290 LnR5cGUgIT0gYmZkX2xpbmtfaGFzaF9kZWZpbmVkCisJICAgICAgJiYgaC0+ cm9vdC50eXBlICE9IGJmZF9saW5rX2hhc2hfZGVmd2VhaykKKwkgIHx8IGFy Y19odGFiLT5zcmVsYnNzID09IE5VTEwpCisJYWJvcnQgKCk7CisKICAgICAg IGJmZF92bWEgcmVsX29mZnNldCA9IChoLT5yb290LnUuZGVmLnZhbHVlCiAJ CQkgICAgKyBoLT5yb290LnUuZGVmLnNlY3Rpb24tPm91dHB1dF9zZWN0aW9u LT52bWEKIAkJCSAgICArIGgtPnJvb3QudS5kZWYuc2VjdGlvbi0+b3V0cHV0 X29mZnNldCk7CiAKLSAgICAgIGFzZWN0aW9uICpzcmVsYnNzCi0JPSBiZmRf Z2V0X3NlY3Rpb25fYnlfbmFtZSAoaC0+cm9vdC51LmRlZi5zZWN0aW9uLT5v d25lciwKLQkJCQkgIi5yZWxhLmJzcyIpOwotCi0gICAgICBiZmRfYnl0ZSAq IGxvYyA9IHNyZWxic3MtPmNvbnRlbnRzCi0JKyAoc3JlbGJzcy0+cmVsb2Nf Y291bnQgKiBzaXplb2YgKEVsZjMyX0V4dGVybmFsX1JlbGEpKTsKLSAgICAg IHNyZWxic3MtPnJlbG9jX2NvdW50Kys7CisgICAgICBiZmRfYnl0ZSAqIGxv YyA9IGFyY19odGFiLT5zcmVsYnNzLT5jb250ZW50cworCSsgKGFyY19odGFi LT5zcmVsYnNzLT5yZWxvY19jb3VudCAqIHNpemVvZiAoRWxmMzJfRXh0ZXJu YWxfUmVsYSkpOworICAgICAgYXJjX2h0YWItPnNyZWxic3MtPnJlbG9jX2Nv dW50Kys7CiAKICAgICAgIEVsZl9JbnRlcm5hbF9SZWxhIHJlbDsKICAgICAg IHJlbC5yX2FkZGVuZCA9IDA7CkBAIC0yMzk0LDMxICsyNTI2LDYgQEAgY29u c3Qgc3RydWN0IGVsZl9zaXplX2luZm8gYXJjX2VsZjMyX3NpemVfaW5mbyA9 CiAKICNkZWZpbmUgZWxmX2JhY2tlbmRfc2l6ZV9pbmZvCQlhcmNfZWxmMzJf c2l6ZV9pbmZvCiAKLXN0YXRpYyBzdHJ1Y3QgYmZkX2xpbmtfaGFzaF90YWJs ZSAqCi1hcmNfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUgKGJmZCAqYWJm ZCkKLXsKLSAgc3RydWN0IGVsZl9saW5rX2hhc2hfdGFibGUgKmh0YWI7Ci0K LSAgaHRhYiA9IGJmZF96bWFsbG9jIChzaXplb2YgKCpodGFiKSk7Ci0gIGlm IChodGFiID09IE5VTEwpCi0gICAgcmV0dXJuIE5VTEw7Ci0KLSAgaWYgKCFf YmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCAoaHRhYiwgYWJmZCwKLQkJ CQkgICAgICBfYmZkX2VsZl9saW5rX2hhc2hfbmV3ZnVuYywKLQkJCQkgICAg ICBzaXplb2YgKHN0cnVjdCBlbGZfbGlua19oYXNoX2VudHJ5KSwKLQkJCQkg ICAgICBHRU5FUklDX0VMRl9EQVRBKSkKLSAgICB7Ci0gICAgICBmcmVlICho dGFiKTsKLSAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICBodGFiLT5p bml0X2dvdF9yZWZjb3VudC5yZWZjb3VudCA9IDA7Ci0gIGh0YWItPmluaXRf Z290X3JlZmNvdW50LmdsaXN0ID0gTlVMTDsKLSAgaHRhYi0+aW5pdF9nb3Rf b2Zmc2V0Lm9mZnNldCA9IDA7Ci0gIGh0YWItPmluaXRfZ290X29mZnNldC5n bGlzdCA9IE5VTEw7Ci0gIHJldHVybiAoc3RydWN0IGJmZF9saW5rX2hhc2hf dGFibGUgKikgaHRhYjsKLX0KLQogLyogSG9vayBjYWxsZWQgYnkgdGhlIGxp bmtlciByb3V0aW5lIHdoaWNoIGFkZHMgc3ltYm9scyBmcm9tIGFuIG9iamVj dAogICAgZmlsZS4gICovCiAKQEAgLTI0NDQsNiArMjU1MSw3IEBAIGVsZl9h cmNfYWRkX3N5bWJvbF9ob29rIChiZmQgKiBhYmZkLAogI2RlZmluZSBUQVJH RVRfQklHX1NZTQkgICAgYXJjX2VsZjMyX2JlX3ZlYwogI2RlZmluZSBUQVJH RVRfQklHX05BTUUgICAgICJlbGYzMi1iaWdhcmMiCiAjZGVmaW5lIEVMRl9B UkNICSAgICBiZmRfYXJjaF9hcmMKKyNkZWZpbmUgRUxGX1RBUkdFVF9JRAkg ICAgQVJDX0VMRl9EQVRBCiAjZGVmaW5lIEVMRl9NQUNISU5FX0NPREUgICAg RU1fQVJDX0NPTVBBQ1QKICNkZWZpbmUgRUxGX01BQ0hJTkVfQUxUMSAgICBF TV9BUkNfQ09NUEFDVDIKICNkZWZpbmUgRUxGX01BWFBBR0VTSVpFICAgICAw eDIwMDAKQEAgLTI0NjIsNyArMjU3MCw3IEBAIGVsZl9hcmNfYWRkX3N5bWJv bF9ob29rIChiZmQgKiBhYmZkLAogCiAjZGVmaW5lIGVsZl9iYWNrZW5kX3Jl bG9jYXRlX3NlY3Rpb24JICAgICBlbGZfYXJjX3JlbG9jYXRlX3NlY3Rpb24K ICNkZWZpbmUgZWxmX2JhY2tlbmRfY2hlY2tfcmVsb2NzCSAgICAgZWxmX2Fy Y19jaGVja19yZWxvY3MKLSNkZWZpbmUgZWxmX2JhY2tlbmRfY3JlYXRlX2R5 bmFtaWNfc2VjdGlvbnMgIF9iZmRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rp b25zCisjZGVmaW5lIGVsZl9iYWNrZW5kX2NyZWF0ZV9keW5hbWljX3NlY3Rp b25zICBhcmNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zCiAKICNkZWZp bmUgZWxmX2JhY2tlbmRfcmVsb2NfdHlwZV9jbGFzcwkJZWxmMzJfYXJjX3Jl bG9jX3R5cGVfY2xhc3MKIAotLSAKMi45LjAKCg== --_002_EB86EB452ADE4B44B294F7149B8A2777022063BCDE02WEMBXBinter_--