From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 2N7VG6w22WKeqBcAWB0awg (envelope-from ) for ; Thu, 21 Jul 2022 07:21:16 -0400 Received: by simark.ca (Postfix, from userid 112) id 64FA21E5EA; Thu, 21 Jul 2022 07:21:16 -0400 (EDT) Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=hJFDdQhg; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_DYNAMIC,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 6BD671E222 for ; Thu, 21 Jul 2022 07:21:15 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 831A3385AE49 for ; Thu, 21 Jul 2022 11:21:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 831A3385AE49 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1658402474; bh=RW5O0zPyXP5XON+zqv90ireXv5Hvl4Y0CNS+e9O5TzM=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=hJFDdQhgEAqolvrOinNmanybQR5mIzBt88jO9ktzXglAPKmke5uAniBbsbH20W6py 4j72IoGcxTXTjoYa4JUHZZZunylDMrlqtxiPjbs4lde2EwaijsXR8gjbv4Ge7ZZBr6 8ayoT7uliKaMJS5gttAlfFqx0C4laNAEvnpRzvHI= Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 75E973858D28 for ; Thu, 21 Jul 2022 11:20:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 75E973858D28 Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id A38953468F; Thu, 21 Jul 2022 11:20:52 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 8919A13A1B; Thu, 21 Jul 2022 11:20:52 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id BJM1IJQ22WIoawAAMHmgww (envelope-from ); Thu, 21 Jul 2022 11:20:52 +0000 Content-Type: multipart/mixed; boundary="------------K77vbS01yfjZmmh33a4tcvuQ" Message-ID: Date: Thu, 21 Jul 2022 13:20:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: [PATCH, v2][gdb/symtab] Force usage of all_comp_units.size (CU/TU/CUTU) Content-Language: en-US To: gdb-patches@sourceware.org References: <20220714144351.GA31826@delia.home> <3b04b910-f020-7dba-54cd-46e23eb9657c@suse.de> In-Reply-To: <3b04b910-f020-7dba-54cd-46e23eb9657c@suse.de> X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Tom de Vries via Gdb-patches Reply-To: Tom de Vries Cc: Tom Tromey Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" This is a multi-part message in MIME format. --------------K77vbS01yfjZmmh33a4tcvuQ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit [ was: Re: [committed][gdb/symtab] Fix bad compile unit index complaint ] On 7/21/22 13:10, Tom de Vries wrote: > [ was: Re: [PATCH][gdb/symtab] Force usage of all_comp_units.size > (CU/TU/CUTU) ] > > On 7/14/22 16:43, Tom de Vries wrote: >> Hi, >> >> I noticed this code in dw2_debug_names_iterator::next: >> ... >>          case DW_IDX_compile_unit: >>            /* Don't crash on bad data.  */ >>            if (ull >= per_bfd->all_comp_units.size ()) >>              { >>                complaint (_(".debug_names entry has bad CU index %s" >>                             " [in module %s]"), >>                           pulongest (ull), >>                           objfile_name (objfile)); >>                continue; >>              } >>            per_cu = per_bfd->get_cu (ull); >>            break; >> ... >> >> This code used to DTRT, before we started keeping both CUs and TUs in >> all_comp_units. >> > > I've dropped the all_comp_units.size (CU/TU/CUTU) part, since that > somewhat violates the One-Patch-Per-Independent=Change rule. And here is it, independent of the dw2_debug_names_iterator::next issue. Thanks, - Tom --------------K77vbS01yfjZmmh33a4tcvuQ Content-Type: text/x-patch; charset=UTF-8; name="0001-gdb-symtab-Force-usage-of-all_comp_units.size-CU-TU-CUTU.patch" Content-Disposition: attachment; filename*0="0001-gdb-symtab-Force-usage-of-all_comp_units.size-CU-TU-CUT"; filename*1="U.patch" Content-Transfer-Encoding: base64 W2dkYi9zeW10YWJdIEZvcmNlIHVzYWdlIG9mIGFsbF9jb21wX3VuaXRzLnNpemUgKENVL1RV L0NVVFUpCgpJdCdzIGVhc3kgdG8gcmVhZCAiYWxsX2NvbXBfdW5pdHMuc2l6ZSAoKSIgYW5k IG9ubHkgdGhpbmsgYWJvdXQgQ1VzCmFuZCBmb3JnZXQgYWJvdXQgVFVzLgoKSW50cm9kdWNl ICJhbGxfY29tcF91bml0cy5zaXplIChDVS9UVS9DVVRVKSIsIHRvIG1ha2UgaXQgZXhwbGlj aXQgd2hpY2ggb2YgdGhlCnRocmVlIHdlIG1lYW4gYXQgZXZlcnkgdXNlLCBhbmQgcmVwbGFj ZToKLSB1c2VzIG9mIHR1X3N0YXRzLm5yX3R1cyB3aXRoIGFsbF9jb21wX3VuaXRzLnNpemUg KFRVKQogIChhcGFydCBmcm9tIHRoZSB1c2UgaW4gcHJpbnRfdHVfc3RhdHMpLAotIHVzZXMg b2YgKGFsbF9jb21wX3VuaXRzLnNpemUgKCkgLSB0dV9zdGF0cy5ucl90dXMpCiAgd2l0aCBh bGxfY29tcF91bml0cy5zaXplIChDVSksIGFuZAotIGFsbCBvdGhlciB1c2VzIG9mICJhbGxf Y29tcF91bml0cy5zaXplICgpIiB3aXRoICJhbGxfY29tcF91bml0cy5zaXplIChDVVRVKSIu CgpUZXN0ZWQgb24geDg2XzY0LWxpbnV4LgoKLS0tCiBnZGIvZHdhcmYyL2luZGV4LXdyaXRl LmMgfCAxMSArKystLS0KIGdkYi9kd2FyZjIvcmVhZC5jICAgICAgICB8IDg3ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogZ2RiL2R3YXJmMi9y ZWFkLmggICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQs IDg4IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dkYi9k d2FyZjIvaW5kZXgtd3JpdGUuYyBiL2dkYi9kd2FyZjIvaW5kZXgtd3JpdGUuYwppbmRleCBl ZmQxNTRkNDFkZi4uZmNlZWYzZDBiMWUgMTAwNjQ0Ci0tLSBhL2dkYi9kd2FyZjIvaW5kZXgt d3JpdGUuYworKysgYi9nZGIvZHdhcmYyL2luZGV4LXdyaXRlLmMKQEAgLTExNzYsNyArMTE3 Niw3IEBAIHdyaXRlX2dkYmluZGV4IChkd2FyZjJfcGVyX29iamZpbGUgKnBlcl9vYmpmaWxl LAogICAgICBpbiB0aGUgaW5kZXggZmlsZSkuICBUaGlzIHdpbGwgbGF0ZXIgYmUgbmVlZGVk IHRvIHdyaXRlIHRoZSBhZGRyZXNzCiAgICAgIHRhYmxlLiAgKi8KICAgY3VfaW5kZXhfbWFw IGN1X2luZGV4X2h0YWI7Ci0gIGN1X2luZGV4X2h0YWIucmVzZXJ2ZSAocGVyX29iamZpbGUt PnBlcl9iZmQtPmFsbF9jb21wX3VuaXRzLnNpemUgKCkpOworICBjdV9pbmRleF9odGFiLnJl c2VydmUgKHBlcl9vYmpmaWxlLT5wZXJfYmZkLT5hbGxfY29tcF91bml0cy5zaXplIChDVVRV KSk7CiAKICAgLyogU3RvcmUgb3V0IHRoZSAuZGVidWdfdHlwZSBDVXMsIGlmIGFueS4gICov CiAgIGRhdGFfYnVmIHR5cGVzX2N1X2xpc3Q7CkBAIC0xMTg3LDcgKzExODcsNyBAQCB3cml0 ZV9nZGJpbmRleCAoZHdhcmYyX3Blcl9vYmpmaWxlICpwZXJfb2JqZmlsZSwKIAogICBpbnQg Y291bnRlciA9IDA7CiAgIGludCB0eXBlc19jb3VudGVyID0gMDsKLSAgZm9yIChpbnQgaSA9 IDA7IGkgPCBwZXJfb2JqZmlsZS0+cGVyX2JmZC0+YWxsX2NvbXBfdW5pdHMuc2l6ZSAoKTsg KytpKQorICBmb3IgKGludCBpID0gMDsgaSA8IHBlcl9vYmpmaWxlLT5wZXJfYmZkLT5hbGxf Y29tcF91bml0cy5zaXplIChDVVRVKTsgKytpKQogICAgIHsKICAgICAgIGR3YXJmMl9wZXJf Y3VfZGF0YSAqcGVyX2N1CiAJPSBwZXJfb2JqZmlsZS0+cGVyX2JmZC0+YWxsX2NvbXBfdW5p dHNbaV0uZ2V0ICgpOwpAQCAtMTI3MCw3ICsxMjcwLDcgQEAgd3JpdGVfZGVidWdfbmFtZXMg KGR3YXJmMl9wZXJfb2JqZmlsZSAqcGVyX29iamZpbGUsCiAgIGRlYnVnX25hbWVzIG5hbWV0 YWJsZSAocGVyX29iamZpbGUsIGR3YXJmNV9pc19kd2FyZjY0LCBkd2FyZjVfYnl0ZV9vcmRl cik7CiAgIGludCBjb3VudGVyID0gMDsKICAgaW50IHR5cGVzX2NvdW50ZXIgPSAwOwotICBm b3IgKGludCBpID0gMDsgaSA8IHBlcl9vYmpmaWxlLT5wZXJfYmZkLT5hbGxfY29tcF91bml0 cy5zaXplICgpOyArK2kpCisgIGZvciAoaW50IGkgPSAwOyBpIDwgcGVyX29iamZpbGUtPnBl cl9iZmQtPmFsbF9jb21wX3VuaXRzLnNpemUgKENVVFUpOyArK2kpCiAgICAgewogICAgICAg ZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UKIAk9IHBlcl9vYmpmaWxlLT5wZXJfYmZkLT5h bGxfY29tcF91bml0c1tpXS5nZXQgKCk7CkBAIC0xMjg2LDkgKzEyODYsOCBAQCB3cml0ZV9k ZWJ1Z19uYW1lcyAoZHdhcmYyX3Blcl9vYmpmaWxlICpwZXJfb2JqZmlsZSwKICAgICB9CiAK ICAgIC8qIFZlcmlmeSB0aGF0IGFsbCB1bml0cyBhcmUgcmVwcmVzZW50ZWQuICAqLwotICBn ZGJfYXNzZXJ0IChjb3VudGVyID09IChwZXJfb2JqZmlsZS0+cGVyX2JmZC0+YWxsX2NvbXBf dW5pdHMuc2l6ZSAoKQotCQkJICAtIHBlcl9vYmpmaWxlLT5wZXJfYmZkLT50dV9zdGF0cy5u cl90dXMpKTsKLSAgZ2RiX2Fzc2VydCAodHlwZXNfY291bnRlciA9PSBwZXJfb2JqZmlsZS0+ cGVyX2JmZC0+dHVfc3RhdHMubnJfdHVzKTsKKyAgZ2RiX2Fzc2VydCAoY291bnRlciA9PSBw ZXJfb2JqZmlsZS0+cGVyX2JmZC0+YWxsX2NvbXBfdW5pdHMuc2l6ZSAoQ1UpKTsKKyAgZ2Ri X2Fzc2VydCAodHlwZXNfY291bnRlciA9PSBwZXJfb2JqZmlsZS0+cGVyX2JmZC0+YWxsX2Nv bXBfdW5pdHMuc2l6ZSAoVFUpKTsKIAogICBmb3IgKGNvbnN0IGNvb2tlZF9pbmRleF9lbnRy eSAqZW50cnkgOiB0YWJsZS0+YWxsX2VudHJpZXMgKCkpCiAgICAgbmFtZXRhYmxlLmluc2Vy dCAoZW50cnkpOwpkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi9yZWFkLmMgYi9nZGIvZHdhcmYy L3JlYWQuYwppbmRleCA0MjIzMDYwN2ZlMC4uM2RiZjMwNmJhODYgMTAwNjQ0Ci0tLSBhL2dk Yi9kd2FyZjIvcmVhZC5jCisrKyBiL2dkYi9kd2FyZjIvcmVhZC5jCkBAIC0xMzkxLDcgKzEz OTEsNyBAQCBjbGFzcyBhbGxfY29tcF91bml0c19pdGVyYXRvcgogCiAgIGFsbF9jb21wX3Vu aXRzX2l0ZXJhdG9yIChkd2FyZjJfcGVyX2JmZCAqcGVyX2JmZCwgYm9vbCBzdGFydCkKICAg ICA6IG1fcGVyX2JmZCAocGVyX2JmZCksCi0gICAgICBtX2luZGV4IChzdGFydCA/IDAgOiBw ZXJfYmZkLT5hbGxfY29tcF91bml0cy5zaXplICgpKQorICAgICAgbV9pbmRleCAoc3RhcnQg PyAwIDogcGVyX2JmZC0+YWxsX2NvbXBfdW5pdHMuc2l6ZSAoQ1VUVSkpCiAgIHsKICAgfQog CkBAIC0xNDQ4LDExICsxNDQ4LDMzIEBAIGNsYXNzIGFsbF9jb21wX3VuaXRzX3JhbmdlCiAg IGR3YXJmMl9wZXJfYmZkICptX3Blcl9iZmQ7CiB9OwogCisvKiBTZWUgcmVhZC5oLiAgKi8K KworYWxsX2NvbXBfdW5pdHNfdHlwZTo6c2l6ZV90eXBlCithbGxfY29tcF91bml0c190eXBl OjpzaXplIChhbGxfY29tcF91bml0c19zaXplX3R5cGUgd2hhdCkgY29uc3Qgbm9leGNlcHQK K3sKKyAgYWxsX2NvbXBfdW5pdHNfdHlwZTo6c2l6ZV90eXBlIG5yX2N1c190dXMKKyAgICA9 ICgoc3RkOjp2ZWN0b3I8ZHdhcmYyX3Blcl9jdV9kYXRhX3VwPiAqKSh0aGlzKSktPnNpemUg KCk7CisKKyAgaWYgKHdoYXQgPT0gQ1VUVSkKKyAgICByZXR1cm4gbnJfY3VzX3R1czsKKwor ICBnZGJfYXNzZXJ0IChtX3Blcl9iZmQgIT0gbnVsbHB0cik7CisgIHNpemVfdHlwZSBucl90 dXMgPSBtX3Blcl9iZmQtPnR1X3N0YXRzLm5yX3R1czsKKyAgaWYgKHdoYXQgPT0gQ1UpCisg ICAgcmV0dXJuIG5yX2N1c190dXMgLSBucl90dXM7CisgIGVsc2UgaWYgKHdoYXQgPT0gVFUp CisgICAgcmV0dXJuIG5yX3R1czsKKyAgZWxzZQorICAgIGdkYl9hc3NlcnRfbm90X3JlYWNo ZWQgKCIiKTsKK30KKwogLyogU2VlIGRlY2xhcmF0aW9uLiAgKi8KIAogZHdhcmYyX3Blcl9i ZmQ6OmR3YXJmMl9wZXJfYmZkIChiZmQgKm9iZmQsIGNvbnN0IGR3YXJmMl9kZWJ1Z19zZWN0 aW9ucyAqbmFtZXMsCiAJCQkJYm9vbCBjYW5fY29weV8pCiAgIDogb2JmZCAob2JmZCksCisg ICAgYWxsX2NvbXBfdW5pdHMgKHRoaXMpLAogICAgIGNhbl9jb3B5IChjYW5fY29weV8pCiB7 CiAgIGlmIChuYW1lcyA9PSBOVUxMKQpAQCAtMjA5Miw3ICsyMTE0LDcgQEAgZHdhcmYyX3Bl cl9iZmQ6OmFsbG9jYXRlX3Blcl9jdSAoKQogewogICBkd2FyZjJfcGVyX2N1X2RhdGFfdXAg cmVzdWx0IChuZXcgZHdhcmYyX3Blcl9jdV9kYXRhKTsKICAgcmVzdWx0LT5wZXJfYmZkID0g dGhpczsKLSAgcmVzdWx0LT5pbmRleCA9IGFsbF9jb21wX3VuaXRzLnNpemUgKCk7CisgIHJl c3VsdC0+aW5kZXggPSBhbGxfY29tcF91bml0cy5zaXplIChDVVRVKTsKICAgcmV0dXJuIHJl c3VsdDsKIH0KIApAQCAtMjEwMyw3ICsyMTI1LDcgQEAgZHdhcmYyX3Blcl9iZmQ6OmFsbG9j YXRlX3NpZ25hdHVyZWRfdHlwZSAoVUxPTkdFU1Qgc2lnbmF0dXJlKQogewogICBzaWduYXR1 cmVkX3R5cGVfdXAgcmVzdWx0IChuZXcgc2lnbmF0dXJlZF90eXBlIChzaWduYXR1cmUpKTsK ICAgcmVzdWx0LT5wZXJfYmZkID0gdGhpczsKLSAgcmVzdWx0LT5pbmRleCA9IGFsbF9jb21w X3VuaXRzLnNpemUgKCk7CisgIHJlc3VsdC0+aW5kZXggPSBhbGxfY29tcF91bml0cy5zaXpl IChDVVRVKTsKICAgcmVzdWx0LT5pc19kZWJ1Z190eXBlcyA9IHRydWU7CiAgIHR1X3N0YXRz Lm5yX3R1cysrOwogICByZXR1cm4gcmVzdWx0OwpAQCAtMjI5Nyw3ICsyMzE5LDcgQEAgY3Jl YXRlX2FkZHJtYXBfZnJvbV9pbmRleCAoZHdhcmYyX3Blcl9vYmpmaWxlICpwZXJfb2JqZmls ZSwKIAkgIGNvbnRpbnVlOwogCX0KIAotICAgICAgaWYgKGN1X2luZGV4ID49IHBlcl9iZmQt PmFsbF9jb21wX3VuaXRzLnNpemUgKCkpCisgICAgICBpZiAoY3VfaW5kZXggPj0gcGVyX2Jm ZC0+YWxsX2NvbXBfdW5pdHMuc2l6ZSAoQ1VUVSkpCiAJewogCSAgY29tcGxhaW50IChfKCIu Z2RiX2luZGV4IGFkZHJlc3MgdGFibGUgaGFzIGludmFsaWQgQ1UgbnVtYmVyICV1IiksCiAJ CSAgICAgKHVuc2lnbmVkKSBjdV9pbmRleCk7CkBAIC0yNzA4LDcgKzI3MzAsNyBAQCBkd2Fy ZjJfcmVhZF9nZGJfaW5kZXgKIAogICBwZXJfYmZkLT5pbmRleF90YWJsZSA9IHN0ZDo6bW92 ZSAobWFwKTsKICAgcGVyX2JmZC0+cXVpY2tfZmlsZV9uYW1lc190YWJsZSA9Ci0gICAgY3Jl YXRlX3F1aWNrX2ZpbGVfbmFtZXNfdGFibGUgKHBlcl9iZmQtPmFsbF9jb21wX3VuaXRzLnNp emUgKCkpOworICAgIGNyZWF0ZV9xdWlja19maWxlX25hbWVzX3RhYmxlIChwZXJfYmZkLT5h bGxfY29tcF91bml0cy5zaXplIChDVVRVKSk7CiAKICAgcmV0dXJuIDE7CiB9CkBAIC0yOTc1 LDcgKzI5OTcsNyBAQCBkdzJfc3ltdGFiX2l0ZXJfbmV4dCAoc3RydWN0IGR3Ml9zeW10YWJf aXRlcmF0b3IgKml0ZXIsCiAJCQkgJiYgc3ltYm9sX2tpbmQgIT0gR0RCX0lOREVYX1NZTUJP TF9LSU5EX05PTkUpOwogCiAgICAgICAvKiBEb24ndCBjcmFzaCBvbiBiYWQgZGF0YS4gICov Ci0gICAgICBpZiAoY3VfaW5kZXggPj0gcGVyX29iamZpbGUtPnBlcl9iZmQtPmFsbF9jb21w X3VuaXRzLnNpemUgKCkpCisgICAgICBpZiAoY3VfaW5kZXggPj0gcGVyX29iamZpbGUtPnBl cl9iZmQtPmFsbF9jb21wX3VuaXRzLnNpemUgKENVVFUpKQogCXsKIAkgIGNvbXBsYWludCAo XygiLmdkYl9pbmRleCBlbnRyeSBoYXMgYmFkIENVIGluZGV4IgogCQkgICAgICAgIiBbaW4g bW9kdWxlICVzXSIpLCBvYmpmaWxlX25hbWUgKHBlcl9vYmpmaWxlLT5vYmpmaWxlKSk7CkBA IC0zMDU2LDcgKzMwNzgsNyBAQCBkd2FyZjJfYmFzZV9pbmRleF9mdW5jdGlvbnM6OnByaW50 X3N0YXRzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgICByZXR1cm47CiAKICAgZHdh cmYyX3Blcl9vYmpmaWxlICpwZXJfb2JqZmlsZSA9IGdldF9kd2FyZjJfcGVyX29iamZpbGUg KG9iamZpbGUpOwotICBpbnQgdG90YWwgPSBwZXJfb2JqZmlsZS0+cGVyX2JmZC0+YWxsX2Nv bXBfdW5pdHMuc2l6ZSAoKTsKKyAgaW50IHRvdGFsID0gcGVyX29iamZpbGUtPnBlcl9iZmQt PmFsbF9jb21wX3VuaXRzLnNpemUgKENVVFUpOwogICBpbnQgY291bnQgPSAwOwogCiAgIGZv ciAoaW50IGkgPSAwOyBpIDwgdG90YWw7ICsraSkKQEAgLTMwOTAsNyArMzExMiw3IEBAIHZv aWQKIGR3YXJmMl9iYXNlX2luZGV4X2Z1bmN0aW9uczo6ZXhwYW5kX2FsbF9zeW10YWJzIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKIHsKICAgZHdhcmYyX3Blcl9vYmpmaWxlICpwZXJf b2JqZmlsZSA9IGdldF9kd2FyZjJfcGVyX29iamZpbGUgKG9iamZpbGUpOwotICBpbnQgdG90 YWxfdW5pdHMgPSBwZXJfb2JqZmlsZS0+cGVyX2JmZC0+YWxsX2NvbXBfdW5pdHMuc2l6ZSAo KTsKKyAgaW50IHRvdGFsX3VuaXRzID0gcGVyX29iamZpbGUtPnBlcl9iZmQtPmFsbF9jb21w X3VuaXRzLnNpemUgKENVVFUpOwogCiAgIGZvciAoaW50IGkgPSAwOyBpIDwgdG90YWxfdW5p dHM7ICsraSkKICAgICB7CkBAIC00MDUzLDcgKzQwNzUsNyBAQCBkdzJfZXhwYW5kX21hcmtl ZF9jdXMKIAl9CiAKICAgICAgIC8qIERvbid0IGNyYXNoIG9uIGJhZCBkYXRhLiAgKi8KLSAg ICAgIGlmIChjdV9pbmRleCA+PSBwZXJfb2JqZmlsZS0+cGVyX2JmZC0+YWxsX2NvbXBfdW5p dHMuc2l6ZSAoKSkKKyAgICAgIGlmIChjdV9pbmRleCA+PSBwZXJfb2JqZmlsZS0+cGVyX2Jm ZC0+YWxsX2NvbXBfdW5pdHMuc2l6ZSAoQ1VUVSkpCiAJewogCSAgY29tcGxhaW50IChfKCIu Z2RiX2luZGV4IGVudHJ5IGhhcyBiYWQgQ1UgaW5kZXgiCiAJCSAgICAgICAiIFtpbiBtb2R1 bGUgJXNdIiksIG9iamZpbGVfbmFtZSAocGVyX29iamZpbGUtPm9iamZpbGUpKTsKQEAgLTQ3 MTMsNyArNDczNSw3IEBAIGR3YXJmMl9yZWFkX2RlYnVnX25hbWVzIChkd2FyZjJfcGVyX29i amZpbGUgKnBlcl9vYmpmaWxlKQogCiAgIHBlcl9iZmQtPmluZGV4X3RhYmxlID0gc3RkOjpt b3ZlIChtYXApOwogICBwZXJfYmZkLT5xdWlja19maWxlX25hbWVzX3RhYmxlID0KLSAgICBj cmVhdGVfcXVpY2tfZmlsZV9uYW1lc190YWJsZSAocGVyX2JmZC0+YWxsX2NvbXBfdW5pdHMu c2l6ZSAoKSk7CisgICAgY3JlYXRlX3F1aWNrX2ZpbGVfbmFtZXNfdGFibGUgKHBlcl9iZmQt PmFsbF9jb21wX3VuaXRzLnNpemUgKENVVFUpKTsKIAogICByZXR1cm4gdHJ1ZTsKIH0KQEAg LTQ5NzAsMjQgKzQ5OTIsMjAgQEAgZHcyX2RlYnVnX25hbWVzX2l0ZXJhdG9yOjpuZXh0ICgp CiAgICAgICBzd2l0Y2ggKGF0dHIuZHdfaWR4KQogCXsKIAljYXNlIERXX0lEWF9jb21waWxl X3VuaXQ6Ci0JICB7Ci0JICAgIC8qIERvbid0IGNyYXNoIG9uIGJhZCBkYXRhLiAgKi8KLQkg ICAgaW50IG5yX2N1cyA9IChwZXJfYmZkLT5hbGxfY29tcF91bml0cy5zaXplICgpCi0JCQkg IC0gcGVyX2JmZC0+dHVfc3RhdHMubnJfdHVzKTsKLQkgICAgaWYgKHVsbCA+PSBucl9jdXMp Ci0JICAgICAgewotCQljb21wbGFpbnQgKF8oIi5kZWJ1Z19uYW1lcyBlbnRyeSBoYXMgYmFk IENVIGluZGV4ICVzIgotCQkJICAgICAiIFtpbiBtb2R1bGUgJXNdIiksCi0JCQkgICBwdWxv bmdlc3QgKHVsbCksCi0JCQkgICBvYmpmaWxlX25hbWUgKG9iamZpbGUpKTsKLQkJY29udGlu dWU7Ci0JICAgICAgfQotCSAgfQorCSAgLyogRG9uJ3QgY3Jhc2ggb24gYmFkIGRhdGEuICAq LworCSAgaWYgKHVsbCA+PSBwZXJfYmZkLT5hbGxfY29tcF91bml0cy5zaXplIChDVSkpCisJ ICAgIHsKKwkgICAgICBjb21wbGFpbnQgKF8oIi5kZWJ1Z19uYW1lcyBlbnRyeSBoYXMgYmFk IENVIGluZGV4ICVzIgorCQkJICAgIiBbaW4gbW9kdWxlICVzXSIpLAorCQkJIHB1bG9uZ2Vz dCAodWxsKSwKKwkJCSBvYmpmaWxlX25hbWUgKG9iamZpbGUpKTsKKwkgICAgICBjb250aW51 ZTsKKwkgICAgfQogCSAgcGVyX2N1ID0gcGVyX2JmZC0+Z2V0X2N1ICh1bGwpOwogCSAgYnJl YWs7CiAJY2FzZSBEV19JRFhfdHlwZV91bml0OgogCSAgLyogRG9uJ3QgY3Jhc2ggb24gYmFk IGRhdGEuICAqLwotCSAgaWYgKHVsbCA+PSBwZXJfYmZkLT50dV9zdGF0cy5ucl90dXMpCisJ ICBpZiAodWxsID49IHBlcl9iZmQtPmFsbF9jb21wX3VuaXRzLnNpemUgKFRVKSkKIAkgICAg ewogCSAgICAgIGNvbXBsYWludCAoXygiLmRlYnVnX25hbWVzIGVudHJ5IGhhcyBiYWQgVFUg aW5kZXggJXMiCiAJCQkgICAiIFtpbiBtb2R1bGUgJXNdIiksCkBAIC00OTk2LDggKzUwMTQs NyBAQCBkdzJfZGVidWdfbmFtZXNfaXRlcmF0b3I6Om5leHQgKCkKIAkgICAgICBjb250aW51 ZTsKIAkgICAgfQogCSAgewotCSAgICBpbnQgbnJfY3VzID0gKHBlcl9iZmQtPmFsbF9jb21w X3VuaXRzLnNpemUgKCkKLQkJCSAgLSBwZXJfYmZkLT50dV9zdGF0cy5ucl90dXMpOworCSAg ICBpbnQgbnJfY3VzID0gcGVyX2JmZC0+YWxsX2NvbXBfdW5pdHMuc2l6ZSAoQ1UpOwogCSAg ICBwZXJfY3UgPSBwZXJfYmZkLT5nZXRfY3UgKG5yX2N1cyArIHVsbCk7CiAJICB9CiAJICBi cmVhazsKQEAgLTUzMjIsNyArNTMzOSw3IEBAIGR3YXJmMl9pbml0aWFsaXplX29iamZpbGUg KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogCiAgICAgICBjcmVhdGVfYWxsX2NvbXBfdW5p dHMgKHBlcl9vYmpmaWxlKTsKICAgICAgIHBlcl9iZmQtPnF1aWNrX2ZpbGVfbmFtZXNfdGFi bGUKLQk9IGNyZWF0ZV9xdWlja19maWxlX25hbWVzX3RhYmxlIChwZXJfYmZkLT5hbGxfY29t cF91bml0cy5zaXplICgpKTsKKwk9IGNyZWF0ZV9xdWlja19maWxlX25hbWVzX3RhYmxlIChw ZXJfYmZkLT5hbGxfY29tcF91bml0cy5zaXplIChDVVRVKSk7CiAKICAgICAgIG9iamZpbGUt PnFmLmVtcGxhY2VfZnJvbnQgKG5ldyByZWFkbm93X2Z1bmN0aW9ucyk7CiAgICAgICByZXR1 cm47CkBAIC01NjE3LDcgKzU2MzQsNyBAQCBjcmVhdGVfZGVidWdfdHlwZXNfaGFzaF90YWJs ZSAoZHdhcmYyX3Blcl9vYmpmaWxlICpwZXJfb2JqZmlsZSwKIHN0YXRpYyBzdHJ1Y3Qgc2ln bmF0dXJlZF90eXBlICoKIGFkZF90eXBlX3VuaXQgKGR3YXJmMl9wZXJfb2JqZmlsZSAqcGVy X29iamZpbGUsIFVMT05HRVNUIHNpZywgdm9pZCAqKnNsb3QpCiB7Ci0gIGlmIChwZXJfb2Jq ZmlsZS0+cGVyX2JmZC0+YWxsX2NvbXBfdW5pdHMuc2l6ZSAoKQorICBpZiAocGVyX29iamZp bGUtPnBlcl9iZmQtPmFsbF9jb21wX3VuaXRzLnNpemUgKENVVFUpCiAgICAgICA9PSBwZXJf b2JqZmlsZS0+cGVyX2JmZC0+YWxsX2NvbXBfdW5pdHMuY2FwYWNpdHkgKCkpCiAgICAgKytw ZXJfb2JqZmlsZS0+cGVyX2JmZC0+dHVfc3RhdHMubnJfYWxsX3R5cGVfdW5pdHNfcmVhbGxv Y3M7CiAKQEAgLTY4NzMsNyArNjg5MCw3IEBAIGJ1aWxkX3R5cGVfcHN5bXRhYnMgKGR3YXJm Ml9wZXJfb2JqZmlsZSAqcGVyX29iamZpbGUsCiAgIC8qIEl0J3MgdXAgdG8gdGhlIGNhbGxl ciB0byBub3QgY2FsbCB1cyBtdWx0aXBsZSB0aW1lcy4gICovCiAgIGdkYl9hc3NlcnQgKHBl cl9vYmpmaWxlLT5wZXJfYmZkLT50eXBlX3VuaXRfZ3JvdXBzID09IE5VTEwpOwogCi0gIGlm IChwZXJfb2JqZmlsZS0+cGVyX2JmZC0+dHVfc3RhdHMubnJfdHVzID09IDApCisgIGlmIChw ZXJfb2JqZmlsZS0+cGVyX2JmZC0+YWxsX2NvbXBfdW5pdHMuc2l6ZSAoVFUpID09IDApCiAg ICAgcmV0dXJuOwogCiAgIC8qIFRVcyB0eXBpY2FsbHkgc2hhcmUgYWJicmV2IHRhYmxlcywg YW5kIHRoZXJlIGNhbiBiZSB3YXkgbW9yZSBUVXMgdGhhbgpAQCAtNjkwMCw3ICs2OTE3LDcg QEAgYnVpbGRfdHlwZV9wc3ltdGFicyAoZHdhcmYyX3Blcl9vYmpmaWxlICpwZXJfb2JqZmls ZSwKICAgLyogU29ydCBpbiBhIHNlcGFyYXRlIHRhYmxlIHRvIG1haW50YWluIHRoZSBvcmRl ciBvZiBhbGxfY29tcF91bml0cwogICAgICBmb3IgLmdkYl9pbmRleDogVFUgaW5kaWNlcyBk aXJlY3RseSBpbmRleCBhbGxfdHlwZV91bml0cy4gICovCiAgIHN0ZDo6dmVjdG9yPHR1X2Fi YnJldl9vZmZzZXQ+IHNvcnRlZF9ieV9hYmJyZXY7Ci0gIHNvcnRlZF9ieV9hYmJyZXYucmVz ZXJ2ZSAocGVyX29iamZpbGUtPnBlcl9iZmQtPnR1X3N0YXRzLm5yX3R1cyk7CisgIHNvcnRl ZF9ieV9hYmJyZXYucmVzZXJ2ZSAocGVyX29iamZpbGUtPnBlcl9iZmQtPmFsbF9jb21wX3Vu aXRzLnNpemUgKFRVKSk7CiAKICAgZm9yIChjb25zdCBhdXRvICZjdSA6IHBlcl9vYmpmaWxl LT5wZXJfYmZkLT5hbGxfY29tcF91bml0cykKICAgICB7CkBAIC03MDU2LDcgKzcwNzMsNyBA QCBkd2FyZjJfYnVpbGRfcHN5bXRhYnNfaGFyZCAoZHdhcmYyX3Blcl9vYmpmaWxlICpwZXJf b2JqZmlsZSkKICAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPGNvb2tlZF9pbmRleD4+ IGluZGV4ZXM7CiAKICAgcGVyX2JmZC0+cXVpY2tfZmlsZV9uYW1lc190YWJsZQotICAgID0g Y3JlYXRlX3F1aWNrX2ZpbGVfbmFtZXNfdGFibGUgKHBlcl9iZmQtPmFsbF9jb21wX3VuaXRz LnNpemUgKCkpOworICAgID0gY3JlYXRlX3F1aWNrX2ZpbGVfbmFtZXNfdGFibGUgKHBlcl9i ZmQtPmFsbF9jb21wX3VuaXRzLnNpemUgKENVVFUpKTsKICAgaWYgKCFwZXJfYmZkLT5kZWJ1 Z19hcmFuZ2VzLmVtcHR5ICgpKQogICAgIHJlYWRfYWRkcm1hcF9mcm9tX2FyYW5nZXMgKHBl cl9vYmpmaWxlLCAmcGVyX2JmZC0+ZGVidWdfYXJhbmdlcywKIAkJCSAgICAgICBpbmRleF9z dG9yYWdlLmdldF9hZGRybWFwICgpKTsKQEAgLTIzNDM0LDEyICsyMzQ1MSwxMiBAQCBzdGF0 aWMgaW50CiBkd2FyZjJfZmluZF9jb250YWluaW5nX2NvbXBfdW5pdAogICAoc2VjdF9vZmZz ZXQgc2VjdF9vZmYsCiAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0X2luX2R3eiwKLSAgIGNvbnN0 IHN0ZDo6dmVjdG9yPGR3YXJmMl9wZXJfY3VfZGF0YV91cD4gJmFsbF9jb21wX3VuaXRzKQor ICAgY29uc3QgYWxsX2NvbXBfdW5pdHNfdHlwZSAmYWxsX2NvbXBfdW5pdHMpCiB7CiAgIGlu dCBsb3csIGhpZ2g7CiAKICAgbG93ID0gMDsKLSAgaGlnaCA9IGFsbF9jb21wX3VuaXRzLnNp emUgKCkgLSAxOworICBoaWdoID0gYWxsX2NvbXBfdW5pdHMuc2l6ZSAoQ1VUVSkgLSAxOwog ICB3aGlsZSAoaGlnaCA+IGxvdykKICAgICB7CiAgICAgICBzdHJ1Y3QgZHdhcmYyX3Blcl9j dV9kYXRhICptaWRfY3U7CkBAIC0yMzQ4Myw3ICsyMzUwMCw3IEBAIGR3YXJmMl9maW5kX2Nv bnRhaW5pbmdfY29tcF91bml0IChzZWN0X29mZnNldCBzZWN0X29mZiwKICAgICB9CiAgIGVs c2UKICAgICB7Ci0gICAgICBpZiAobG93ID09IHBlcl9iZmQtPmFsbF9jb21wX3VuaXRzLnNp emUgKCkgLSAxCisgICAgICBpZiAobG93ID09IHBlcl9iZmQtPmFsbF9jb21wX3VuaXRzLnNp emUgKENVVFUpIC0gMQogCSAgJiYgc2VjdF9vZmYgPj0gdGhpc19jdS0+c2VjdF9vZmYgKyB0 aGlzX2N1LT5sZW5ndGggKCkpCiAJZXJyb3IgKF8oImludmFsaWQgZHdhcmYyIG9mZnNldCAl cyIpLCBzZWN0X29mZnNldF9zdHIgKHNlY3Rfb2ZmKSk7CiAgICAgICBnZGJfYXNzZXJ0IChz ZWN0X29mZiA8IHRoaXNfY3UtPnNlY3Rfb2ZmICsgdGhpc19jdS0+bGVuZ3RoICgpKTsKQEAg LTIzNTE4LDcgKzIzNTM1LDcgQEAgcnVuX3Rlc3QgKCkKICAgZm91ci0+c2V0X2xlbmd0aCAo Nyk7CiAgIGZvdXItPmlzX2R3eiA9IDE7CiAKLSAgc3RkOjp2ZWN0b3I8ZHdhcmYyX3Blcl9j dV9kYXRhX3VwPiB1bml0czsKKyAgYWxsX2NvbXBfdW5pdHNfdHlwZSB1bml0cyAobnVsbHB0 cik7CiAgIHVuaXRzLnB1c2hfYmFjayAoc3RkOjptb3ZlIChvbmUpKTsKICAgdW5pdHMucHVz aF9iYWNrIChzdGQ6Om1vdmUgKHR3bykpOwogICB1bml0cy5wdXNoX2JhY2sgKHN0ZDo6bW92 ZSAodGhyZWUpKTsKZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjIvcmVhZC5oIGIvZ2RiL2R3YXJm Mi9yZWFkLmgKaW5kZXggYzJmODZhOWQzNjcuLjg5ZThhZDI5NzU4IDEwMDY0NAotLS0gYS9n ZGIvZHdhcmYyL3JlYWQuaAorKysgYi9nZGIvZHdhcmYyL3JlYWQuaApAQCAtNDEwLDYgKzQx MCwzNiBAQCBzdHJ1Y3Qgc2lnbmF0dXJlZF90eXBlIDogcHVibGljIGR3YXJmMl9wZXJfY3Vf ZGF0YQogCiB1c2luZyBzaWduYXR1cmVkX3R5cGVfdXAgPSBzdGQ6OnVuaXF1ZV9wdHI8c2ln bmF0dXJlZF90eXBlPjsKIAorLyogVG8gc3BlY2lmeSB3aGV0aGVyIHdlIHdhbnQgdGhlIG51 bWJlciBvZiBDVXMsIFRVcywgb3IgYm90aCBDVXMgYW5kIFRVcyBmcm9tCisgICBhbGxfY29t cF91bml0cy5zaXplICgpLiAgKi8KKworZW51bSBhbGxfY29tcF91bml0c19zaXplX3R5cGUK K3sKKyAgQ1UsCisgIFRVLAorICBDVVRVCit9OworCisvKiBWYXJpYW50IG9mIHN0ZDo6dmVj dG9yPGR3YXJmMl9wZXJfY3VfZGF0YV91cD4gdGhhdCBkZWxldGVzIHRoZSBzaXplICgpCisg ICBtZW1iZXIgZnVuY3Rpb24gYW5kIHJlcGxhY2VzIGl0IHdpdGggc2l6ZSAoYWxsX2NvbXBf dW5pdHNfc2l6ZV90eXBlKS4KKyAgIFRoaXMgZm9yY2VzIHVzIHRvIHNwZWNpZnkgZXhwbGlj aXRseSB3aGV0aGVyIHdlIHdhbnQgdGhlIG51bWJlciBvZiBDVXMsIFRVcworICAgb3IgdGhl IHRvdGFsIGF0IGV2ZXJ5IHVzZS4gICovCisKK2NsYXNzIGFsbF9jb21wX3VuaXRzX3R5cGUg OiBwdWJsaWMgc3RkOjp2ZWN0b3I8ZHdhcmYyX3Blcl9jdV9kYXRhX3VwPgoreworcHVibGlj OgorICBhbGxfY29tcF91bml0c190eXBlIChzdHJ1Y3QgZHdhcmYyX3Blcl9iZmQgKnBlcl9i ZmQpCisgIHsKKyAgICBtX3Blcl9iZmQgPSBwZXJfYmZkOworICB9CisKKyAgc2l6ZV90eXBl IHNpemUgKCkgY29uc3Qgbm9leGNlcHQgPSBkZWxldGU7CisgIHNpemVfdHlwZSBzaXplIChh bGxfY29tcF91bml0c19zaXplX3R5cGUgd2hhdCkgY29uc3Qgbm9leGNlcHQ7CisKK3ByaXZh dGU6CisgIHN0cnVjdCBkd2FyZjJfcGVyX2JmZCAqbV9wZXJfYmZkID0gbnVsbHB0cjsKK307 CisKIC8qIFNvbWUgRFdBUkYgZGF0YSBjYW4gYmUgc2hhcmVkIGFjcm9zcyBvYmpmaWxlcyB3 aG8gc2hhcmUgdGhlIHNhbWUgQkZELAogICAgdGhpcyBkYXRhIGlzIHN0b3JlZCBpbiB0aGlz IG9iamVjdC4KIApAQCAtNDg5LDcgKzUxOSw3IEBAIHN0cnVjdCBkd2FyZjJfcGVyX2JmZAog CiAgIC8qIFRhYmxlIG9mIGFsbCB0aGUgY29tcGlsYXRpb24gdW5pdHMuICBUaGlzIGlzIHVz ZWQgdG8gbG9jYXRlCiAgICAgIHRoZSB0YXJnZXQgY29tcGlsYXRpb24gdW5pdCBvZiBhIHBh cnRpY3VsYXIgcmVmZXJlbmNlLiAgKi8KLSAgc3RkOjp2ZWN0b3I8ZHdhcmYyX3Blcl9jdV9k YXRhX3VwPiBhbGxfY29tcF91bml0czsKKyAgYWxsX2NvbXBfdW5pdHNfdHlwZSBhbGxfY29t cF91bml0czsKIAogICAvKiBUYWJsZSBvZiBzdHJ1Y3QgdHlwZV91bml0X2dyb3VwIG9iamVj dHMuCiAgICAgIFRoZSBoYXNoIGtleSBpcyB0aGUgRFdfQVRfc3RtdF9saXN0IHZhbHVlLiAg Ki8K --------------K77vbS01yfjZmmh33a4tcvuQ--