From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by sourceware.org (Postfix) with ESMTPS id 6BF6D385840E for ; Fri, 27 Jan 2023 21:13:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6BF6D385840E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de 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 A563B21FD5; Fri, 27 Jan 2023 21:13:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1674854013; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=30jSqBajK3iyjfEt7RWQP05PNU4WNoFWAL2UdcfqM2Q=; b=dUUcTl7YAkNFdSb7ImUaHhjpFrfVP8gafZTvdu++RJFaCgPIa7QZR7nsZpPywJVKsdc31c HwPtnRiPAU/N/YSIUBKluDCTVtYKIBQ8qtZqCCAixT5jPmDQtPmFl43YYHEXYjugmeXSil 3lmgl4DuMalkiwqkRtrxm+GsP9QQtqk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1674854013; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=30jSqBajK3iyjfEt7RWQP05PNU4WNoFWAL2UdcfqM2Q=; b=tRbnezP36zwPZOCH82UTrF5EWRMpVv5GVA1Vim3vPaABSp8H9mTk6CtO+CbMqDczEBjzdE gBDvLxJ7uWZ9VOAg== 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 8C5C1138E3; Fri, 27 Jan 2023 21:13:33 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id D2sgIX0+1GMyCwAAMHmgww (envelope-from ); Fri, 27 Jan 2023 21:13:33 +0000 Content-Type: multipart/mixed; boundary="------------2EmPzecUz6ehNphPBhn0yf2r" Message-ID: <5d5eeb5d-bc39-c01f-53e8-d961ed0b98ea@suse.de> Date: Fri, 27 Jan 2023 22:13:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH] [gdb/tdep] Assume epilogue unwind info is valid unless gcc < 4.5.0 Content-Language: en-US To: Tom Tromey , Tom de Vries via Gdb-patches References: <20230121074807.22032-1-tdevries@suse.de> <87a62blqxn.fsf@tromey.com> From: Tom de Vries In-Reply-To: <87a62blqxn.fsf@tromey.com> X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_NUMSUBJECT,KAM_SHORT,SPF_HELO_NONE,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. --------------2EmPzecUz6ehNphPBhn0yf2r Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 1/21/23 18:48, Tom Tromey wrote: >>>>>> "Tom" == Tom de Vries via Gdb-patches writes: > > Tom> Fix these two issues by reversing the burden of proof: > Tom> - currently we assume epilogue unwind info is invalid unless we can proof that > Tom> gcc >= 4.5.0. > Tom> - instead, assume epilogue unwind info is valid unless we can proof that > Tom> gcc < 4.5.0. > > FWIW this approach makes sense to me. > OK, then changing RFC -> PATCH. > It's pretty lame that there's no way to detect this failure from the > frame section -- it can't be producer-sniffed and the augmentation > strings can't really be changed. > > gcc 4.5 was released in 2010, and so it's not like we're inconveniencing > a lot of users. If needed I guess we could add a user setting to switch > this behavior back on. > > Note there is a similar issue for the prologue, see: > > https://sourceware.org/bugzilla/show_bug.cgi?id=25696 > https://sourceware.org/bugzilla/show_bug.cgi?id=17265 > https://sourceware.org/bugzilla/show_bug.cgi?id=21470 > > Also worth seeing the hilarious: > > https://github.com/rust-lang/rust/issues/41252#issuecomment-293676579 > > I think that in this area we should assume the debug info is correct, > and keep a list of known-bad producers rather than assuming the debug > info is wrong and having a list of known-good ones. > > Tom> + if (/* In absence of producer information, optimistically assume that we're > Tom> + not dealing with gcc < 4.5.0. */ > > This placement of the comment is pretty weird, it seems fine to just > stick it before the 'if'. > Done. > Tom> + if (cu->producer == nullptr) > Tom> + /* In absence of producer information, optimistically assume that we're > Tom> + not dealing with gcc < 4.5.0. */ > Tom> + cust->set_epilogue_unwind_valid (true); > Tom> + if (!producer_is_gcc (cu->producer, nullptr, nullptr)) > > Normally if there is a comment and a line of code as the consequence of > an 'if', we put them both in a block. > Done. > Anyway I was also thinking that the second one should say 'else if'. True, thanks for catching that, also done. I've also added a test-case, for the amd64-tdep.c change. I could make another one for the i386-tdep.c change, and/or one for the dwarf/read.c change, but I'm not sure that's worth the trouble. Thanks, - Tom --------------2EmPzecUz6ehNphPBhn0yf2r Content-Type: text/x-patch; charset=UTF-8; name="0001-gdb-tdep-Assume-epilogue-unwind-info-is-valid-unless.patch" Content-Disposition: attachment; filename*0="0001-gdb-tdep-Assume-epilogue-unwind-info-is-valid-unless.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBjYWMxYTk2YTI4Yzc2MTU0M2NjMzNmY2UwOWMwNjg3MTNjNmQ2Yzk2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gZGUgVnJpZXMgPHRkZXZyaWVzQHN1c2UuZGU+ CkRhdGU6IEZyaSwgMjAgSmFuIDIwMjMgMTg6MTk6MzggKzAxMDAKU3ViamVjdDogW1BBVENI XSBbZ2RiL3RkZXBdIEFzc3VtZSBlcGlsb2d1ZSB1bndpbmQgaW5mbyBpcyB2YWxpZCB1bmxl c3MgZ2NjIDwKIDQuNS4wCgpUaGUgZ2NjIDQuNC54IChhbmQgZWFybGllcikgY29tcGlsZXJz IGhhZCB0aGUgcHJvYmxlbSB0aGF0IHRoZSB1bndpbmQgaW5mbyBpbgp0aGUgZXBpbG9ndWUg d2FzIGluYWNjdXJhdGUuCgpJbiBvcmRlciB0byB3b3JrIGFyb3VuZCB0aGlzIGluIGdkYiwg ZXBpbG9ndWUgdW53aW5kZXJzIHdlcmUgYWRkZWQgd2l0aCBhCmhpZ2hlciBwcmlvcml0eSB0 aGFuIHRoZSBkd2FyZiB1bndpbmRlcnMgaW4gdGhlIGFtZDY0IGFuZCBpMzg2IHRhcmdldHM6 Ci0gYW1kNjRfZXBpbG9ndWVfZnJhbWVfdW53aW5kLCBhbmQKLSBpMzg2X2VwaWxvZ3VlX2Zy YW1lX3Vud2luZApzZWU6Ci0gc3VibWlzc2lvbiBlbWFpbHM6CiAgaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9waXBlcm1haWwvZ2RiLXBhdGNoZXMvMjAwOS1KdWx5LzA2Njc3OS5odG1sCiAg aHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9waXBlcm1haWwvZ2RiLXBhdGNoZXMvMjAwOS1BdWd1 c3QvMDY3Njg0Lmh0bWwKLSBnZGIgY29tbWl0cyA4NzI3NjFmNDg1ZSBhbmQgMDZkYTA0YzYx MDUKClN1YnNlcXVlbnRseSwgdGhlIGVwaWxvZ3VlIHVud2luZCBpbmZvIHByb2JsZW0gZ290 IGZpeGVkIGluIGdjYyA0LjUuMCwgc2VlOgotIHN1Ym1pc3Npb24gZW1haWwKICBodHRwczov L2djYy5nbnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDA5LU1heS8yNjEzNzcuaHRt bAotIGdjYyBjb21taXQgY2Q5YzFjYTg2NmIKLSByZWxlYXNlIG5vdGVzIGdjYyA0LjUuMCAo IGh0dHBzOi8vZ2NjLmdudS5vcmcvZ2NjLTQuNS9jaGFuZ2VzLmh0bWwgKToKICBHQ0Mgbm93 IGdlbmVyYXRlcyB1bndpbmQgaW5mbyBhbHNvIGZvciBlcGlsb2d1ZXMuCgpIb3dldmVyLCB0 aGUgZXBpbG9ndWUgdW53aW5kZXJzIHByZXZlbnRlZCBnZGIgZnJvbSB0YWtpbmcgYWR2YW50 YWdlIG9mIHRoZQpmaXhlZCBlcGlsb2d1ZSB1bndpbmQgaW5mbywgc28gdGhlIHNjb3BlIG9m IHRoZSBlcGlsb2d1ZSB1bndpbmRlcnMgd2FzCmxpbWl0ZWQsIGJhaWxpbmcgb3V0IGZvciBn Y2MgPj0gNC41LjAsIHNlZToKLSBzdWJtaXNzc2lvbiBlbWFpbAogIGh0dHBzOi8vc291cmNl d2FyZS5vcmcvcGlwZXJtYWlsL2dkYi1wYXRjaGVzLzIwMTEtSnVuZS8wODM0MjkuaHRtbAot IGdkYiBjb21taXQgZTBkMDBiYzc0OWUgIkRpc2FibGUgZXBpbG9ndWUgdW53aW5kZXJzIG9u IHJlY2VudCBHQ0NzIgoKVGhpcyBzY29wZSBsaW1pdGF0aW9uIG1lY2hhbmlzbSB3b3JrcyB3 ZWxsIGZvciBnY2MgLWc6IHRoZSBwcm9kdWNlciBpcwphdmFpbGFibGUgaW4gdGhlIGRlYnVn IGluZm8sIGFuZCB3ZSBjYW4gZGV0ZXJtaW5lIHdoZXRoZXIgd2UncmUgZGVhbGluZwp3aXRo IHJlbGlhYmxlIGVwaWxvZ3VlIHVud2luZCBpbmZvIG9yIG5vdC4KCkZvciBnY2MgLWcwIHRo b3VnaCwgZXBpbG9ndWUgdW53aW5kIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiAuZWhf ZnJhbWUsIGJ1dAp0aGUgcHJvZHVjZXIgaXMgbm90IGF2YWlsYWJlIHRvIGRldGVybWluZSB3 aGV0aGVyIHRoYXQgaW5mb3JtYXRpb24gaXMgcmVsaWFibGUKb3Igbm90LCBhbmQgY29uc2Vx dWVudGx5IHRoZSBpbmZvIGlzIGlnbm9yZWQ6Ci0gaW4gdGhlIGNhc2Ugb2YgdXNpbmcgZ2Nj IDw9IDQuNC54LCB0aGF0IGlzIHRoZSBvayBkZWNpc2lvbiBhbmQgd2UncmUgd29ya2luZwog IGFyb3VuZCB0aGUgZ2NjIHByb2JsZW0sIGJ1dAotIGluIHRoZSBjYXNlIG9mIGdjYyA+PSA0 LjUuMCwgdGhhdCBtZWFucyB3ZSBmYWlsIHRvIHRha2UgYWR2YW50YWdlIG9mIGZpeGVkCiAg ZXBpbG9ndWUgdW53aW5kIGluZm8uCgpGdXJ0aGVybW9yZSwgbGV0J3MgcmV2aWV3IHRoZSBo aXN0b3J5IG9mIHdoYXQgZXBpbG9ndWUgdW53aW5kIGluZm9ybWF0aW9uIGlzCnRydXN0ZWQg YnkgZ2RiOgotIGluaXRpYWwgcG9zaXRpb246IHRydXN0IGFsbCBpbmZvcm1hdGlvbgotIGFm dGVyIHRoZSBlcGlsb2d1ZSB1bndpbmRlcnMgd2VyZSBhZGRlZDogdHJ1c3Qgbm9uZQotIGFm dGVyIHRoZSBzY29wZSBsaW1pdGF0aW9uOiBvbmx5IHRydXN0IGdjYyA+PSA0LjUuMC4KClNv LCB3aGlsZSB3ZSBzdGFydGVkIG91dCB3aXRoIHRydXN0aW5nIGluZm8gZnJvbSBhbGwgY29t cGlsZXJzLCB3ZSBlbmQgdXAKdHJ1c3Rpbmcgb25seSBnY2MgPj0gNC41LjAsIHdoaWNoIHNl ZW1zIGEgYml0IG9mIGFuIG92ZXJyZWFjaCBmb3IgYSB3b3JrYXJvdW5kCmZvciBhIHByb2Js ZW0gaW4gdGhlIGdjYyBjb21waWxlci4KCkZpeCB0aGVzZSB0d28gaXNzdWVzIGJ5IHJldmVy c2luZyB0aGUgYnVyZGVuIG9mIHByb29mOgotIGN1cnJlbnRseSB3ZSBhc3N1bWUgZXBpbG9n dWUgdW53aW5kIGluZm8gaXMgaW52YWxpZCB1bmxlc3Mgd2UgY2FuIHByb29mIHRoYXQKICBn Y2MgPj0gNC41LjAuCi0gaW5zdGVhZCwgYXNzdW1lIGVwaWxvZ3VlIHVud2luZCBpbmZvIGlz IHZhbGlkIHVubGVzcyB3ZSBjYW4gcHJvb2YgdGhhdAogIGdjYyA8IDQuNS4wLgoKQW4gYWRk ZWQgYmVuZWZpdCBvZiB0aGlzIGlzIHRoYXQgaXQgbWFrZXMgdGhlIGFtZDY0IGFuZCBpMzg2 IHRhcmdldHMgbW9yZQpzaW1pbGFyIHRvIG90aGVyIHRhcmdldHMsIHdoaWNoIG1ha2VzIGNv bXBhcmluZyBiZWhhdmlvdXIgZWFzaWVyLiAgTm90ZSB0aGF0CnNvbWUgb3RoZXIgdGFyZ2V0 cyBhbHNvIGhhdmUgYW4gZXBpbG9ndWUgdW53aW5kZXIsIGJ1dCBub25lIG9mIHRob3NlIGhh dmUgYQpoaWdoZXIgcHJpb3JpdHkgdGhhbiB0aGUgZHdhcmYgdW53aW5kZXJzLgoKVGVzdGVk IG9uIHg4Nl82NC1saW51eCB3aXRoIGdjYyA3LjUuMCwgd2l0aCB0YXJnZXQgYm9hcmRzIHVu aXgvLW02NCBhbmQKdW5peC8tbTMyLgoKVGhlIHBhdGNoIGNvbnRhaW5zIDMgY2hhbmdlcywg aW4gYW1kNjQtdGRlcC5jLCBpMzg2LXRkZXAuYyBhbmQgZHdhcmYvcmVhZC5jLgoKQSByZWdy ZXNzaW9uIHRlc3QtY2FzZSB3YXMgYWRkZWQgZm9yIHRoZSBhbWQ2NC10ZGVwLmMgcGFydC4K ClBSIHRkZXAvMzAwMjgKQnVnOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3No b3dfYnVnLmNnaT9pZD0zMDAyOAotLS0KIGdkYi9hbWQ2NC10ZGVwLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICA0ICstCiBnZGIvZHdhcmYyL3JlYWQuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxMiArKysrLQogZ2RiL2kzODYtdGRlcC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi9nZGIuYmFzZS91bndpbmQtb24t ZWFjaC1pbnNuLWFtZDY0LTIuZXhwICB8IDUyICsrKysrKysrKysrKysrKysrKwogLi4uL2dk Yi5iYXNlL3Vud2luZC1vbi1lYWNoLWluc24tYW1kNjQtMi5zICAgIHwgNTQgKysrKysrKysr KysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxMjMgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Vu d2luZC1vbi1lYWNoLWluc24tYW1kNjQtMi5leHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3Vud2luZC1vbi1lYWNoLWluc24tYW1kNjQtMi5zCgpkaWZm IC0tZ2l0IGEvZ2RiL2FtZDY0LXRkZXAuYyBiL2dkYi9hbWQ2NC10ZGVwLmMKaW5kZXggNzBk MGQwZjMzMTguLjExMzJhZjJlODhjIDEwMDY0NAotLS0gYS9nZGIvYW1kNjQtdGRlcC5jCisr KyBiL2dkYi9hbWQ2NC10ZGVwLmMKQEAgLTI5MDYsNyArMjkwNiw5IEBAIGFtZDY0X3N0YWNr X2ZyYW1lX2Rlc3Ryb3llZF9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERS IHBjKQogICBzdHJ1Y3QgY29tcHVuaXRfc3ltdGFiICpjdXN0OwogCiAgIGN1c3QgPSBmaW5k X3BjX2NvbXB1bml0X3N5bXRhYiAocGMpOwotICBpZiAoY3VzdCAhPSBOVUxMICYmIGN1c3Qt PmVwaWxvZ3VlX3Vud2luZF92YWxpZCAoKSkKKyAgLyogSW4gYWJzZW5jZSBvZiBwcm9kdWNl ciBpbmZvcm1hdGlvbiwgb3B0aW1pc3RpY2FsbHkgYXNzdW1lIHRoYXQgd2UncmUKKyAgICAg bm90IGRlYWxpbmcgd2l0aCBnY2MgPCA0LjUuMCwgYW5kIGhhdmUgdmFsaWQgZXBpbG9ndWUg dW53aW5kIGluZm8uICAqLworICBpZiAoY3VzdCA9PSBOVUxMIHx8IGN1c3QtPmVwaWxvZ3Vl X3Vud2luZF92YWxpZCAoKSkKICAgICByZXR1cm4gMDsKIAogICBpZiAodGFyZ2V0X3JlYWRf bWVtb3J5IChwYywgJmluc24sIDEpKQpkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMi9yZWFkLmMg Yi9nZGIvZHdhcmYyL3JlYWQuYwppbmRleCBjZDkzN2YyNGVlNy4uYmM2Y2EwNjU3M2EgMTAw NjQ0Ci0tLSBhL2dkYi9kd2FyZjIvcmVhZC5jCisrKyBiL2dkYi9kd2FyZjIvcmVhZC5jCkBA IC04NDg0LDcgKzg0ODQsMTcgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoZHdhcmYyX2N1 ICpjdSwgZW51bSBsYW5ndWFnZSBwcmV0ZW5kX2xhbmd1YWdlKQogICAgICAgaWYgKGN1LT5o YXNfbG9jbGlzdCAmJiBnY2NfNF9taW5vciA+PSA1KQogCWN1c3QtPnNldF9sb2NhdGlvbnNf dmFsaWQgKHRydWUpOwogCi0gICAgICBpZiAoZ2NjXzRfbWlub3IgPj0gNSkKKyAgICAgIGlm IChjdS0+cHJvZHVjZXIgPT0gbnVsbHB0cikKKwl7CisJICAvKiBJbiBhYnNlbmNlIG9mIHBy b2R1Y2VyIGluZm9ybWF0aW9uLCBvcHRpbWlzdGljYWxseSBhc3N1bWUgdGhhdAorCSAgICAg d2UncmUgbm90IGRlYWxpbmcgd2l0aCBnY2MgPCA0LjUuMC4gICovCisJICBjdXN0LT5zZXRf ZXBpbG9ndWVfdW53aW5kX3ZhbGlkICh0cnVlKTsKKwl9CisgICAgICBlbHNlIGlmICghcHJv ZHVjZXJfaXNfZ2NjIChjdS0+cHJvZHVjZXIsIG51bGxwdHIsIG51bGxwdHIpKQorCS8qIE5v dCBnY2MuICAqLworCWN1c3QtPnNldF9lcGlsb2d1ZV91bndpbmRfdmFsaWQgKHRydWUpOwor ICAgICAgZWxzZSBpZiAoZ2NjXzRfbWlub3IgPj0gNSkKKwkvKiBnY2MgPj0gNC41LjAuICAq LwogCWN1c3QtPnNldF9lcGlsb2d1ZV91bndpbmRfdmFsaWQgKHRydWUpOwogCiAgICAgICBj dXN0LT5zZXRfY2FsbF9zaXRlX2h0YWIgKGN1LT5jYWxsX3NpdGVfaHRhYik7CmRpZmYgLS1n aXQgYS9nZGIvaTM4Ni10ZGVwLmMgYi9nZGIvaTM4Ni10ZGVwLmMKaW5kZXggNTgwNjY0ZDJj ZTUuLjcwODM3MGJlMTE0IDEwMDY0NAotLS0gYS9nZGIvaTM4Ni10ZGVwLmMKKysrIGIvZ2Ri L2kzODYtdGRlcC5jCkBAIC0yMjIyLDcgKzIyMjIsOSBAQCBpMzg2X3N0YWNrX2ZyYW1lX2Rl c3Ryb3llZF9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIHBjKQogICBz dHJ1Y3QgY29tcHVuaXRfc3ltdGFiICpjdXN0OwogCiAgIGN1c3QgPSBmaW5kX3BjX2NvbXB1 bml0X3N5bXRhYiAocGMpOwotICBpZiAoY3VzdCAhPSBOVUxMICYmIGN1c3QtPmVwaWxvZ3Vl X3Vud2luZF92YWxpZCAoKSkKKyAgLyogSW4gYWJzZW5jZSBvZiBwcm9kdWNlciBpbmZvcm1h dGlvbiwgb3B0aW1pc3RpY2FsbHkgYXNzdW1lIHRoYXQgd2UncmUKKyAgICAgbm90IGRlYWxp bmcgd2l0aCBnY2MgPCA0LjUuMCwgYW5kIGhhdmUgdmFsaWQgZXBpbG9ndWUgdW53aW5kIGlu Zm8uICAqLworICBpZiAoY3VzdCA9PSBOVUxMIHx8IGN1c3QtPmVwaWxvZ3VlX3Vud2luZF92 YWxpZCAoKSkKICAgICByZXR1cm4gMDsKIAogICBpZiAodGFyZ2V0X3JlYWRfbWVtb3J5IChw YywgJmluc24sIDEpKQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS91bndp bmQtb24tZWFjaC1pbnNuLWFtZDY0LTIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS91 bndpbmQtb24tZWFjaC1pbnNuLWFtZDY0LTIuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5jOGE5NGNjZWY0ZgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdW53aW5kLW9uLWVhY2gtaW5zbi1hbWQ2NC0yLmV4cApAQCAt MCwwICsxLDUyIEBACisjIENvcHlyaWdodCAyMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LiAgKi8KKworIyBDaGVjayB0aGF0IGVwaWxvZ3VlIHVud2luZCBpbmZvIGlzIHVz ZWQsIGV2ZW4gaWYgbm8gZGVidWcgaW5mbyBpcyBhdmFpbGFibGUuCisKK3JlcXVpcmUgaXNf eDg2XzY0X202NF90YXJnZXQKKworc2V0IHNyY2ZpbGVfZmxhZ3Mge2RlYnVnfQorc2V0IHNy Y2ZpbGUyX2ZsYWdzIHtub2RlYnVnfQorCitpZiBbaW5mbyBleGlzdHMgQ09NUElMRV0gewor ICAgICMgTWFrZSBzdXJlIHRoYXQgd2UgdXNlIC5laF9mcmFtZSBpbmZvLCBieSBnZW5lcmF0 aW5nIGl0CisgICAgIyB1c2luZyAtZmFzeW5jaHJvbm91cy11bndpbmQtdGFibGVzLgorICAg IGlmIHsgW2dkYl9jYW5fc2ltcGxlX2NvbXBpbGUgZmFzeW5jaHJvbm91cy11bndpbmQtdGFi bGVzIFwKKwkgICAgICB7IHZvaWQgZm9vICgpIHsgfSB9IG9iamVjdCAtZmFzeW5jaHJvbm91 cy11bndpbmQtdGFibGVzXSB9IHsKKwlsYXBwZW5kIHNyY2ZpbGUyX2ZsYWdzIGFkZGl0aW9u YWxfZmxhZ3M9LWZhc3luY2hyb25vdXMtdW53aW5kLXRhYmxlcworICAgIH0gZWxzZSB7CisJ dW5zdXBwb3J0ZWQgInJlcXVpcmVkOiAuZWhfZnJhbWUiCisJcmV0dXJuCisgICAgfQorICAg IHN0YW5kYXJkX3Rlc3RmaWxlIHVud2luZC1vbi1lYWNoLWluc24uYyB1bndpbmQtb24tZWFj aC1pbnNuLWZvby5jCisgICAgIyBXaGVuIHVwZGF0aW5nIHRoZSAucyBmaWxlLCB1c2UgdGhl c2UgZmxhZ3MgdG8gZ2VuZXJhdGUgdGhlIGZpbGU6CisgICAgI2xhcHBlbmQgc3JjZmlsZTJf ZmxhZ3MgYWRkaXRpb25hbF9mbGFncz0tc2F2ZS10ZW1wcworICAgICNsYXBwZW5kIHNyY2Zp bGUyX2ZsYWdzIGFkZGl0aW9uYWxfZmxhZ3M9LWRBCisgICAgIyBhbmQgZG8gdGhlIGZvbGxv d2luZzoKKyAgICAjIC0gY29weSBpdCBpbiBwbGFjZSwgcnVuIHRoZSB0ZXN0LWNhc2UgYW5k IHZlcmlmeSB0aGF0IGFsbCB0ZXN0cyBwYXNzLgorICAgICMgLSBjb25mdXNlIHRoZSBhbWQ2 NCBlcGlsb2d1ZSB1bndpbmRlciBieSBpbnNlcnRpbmcgdGhlIGZvbGxvd2luZworICAgICMg ICBpbiBmb286CisgICAgIyAgICAgICAgICBub3AKKyAgICAjICAgICArICAgIHB1c2hxICQu TDEKKyAgICAjICAgICArICAgIHJldAorICAgICMgICAgICsgIC5MMToKKyAgICAjICAgICAr ICAgIG5vcAorICAgICMgICAgICAgICAgcG9wcSAlcmJwCisgICAgIyAtIHZlcmlmeSB0aGF0 IHRoZSB0ZXN0LWNhc2UgcGFzc2VzLgorfSBlbHNlIHsKKyAgICBzdGFuZGFyZF90ZXN0Zmls ZSB1bndpbmQtb24tZWFjaC1pbnNuLmMgLnMKK30KKworc291cmNlICRzcmNkaXIvJHN1YmRp ci91bndpbmQtb24tZWFjaC1pbnNuLmV4cC50Y2wKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvdW53aW5kLW9uLWVhY2gtaW5zbi1hbWQ2NC0yLnMgYi9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL3Vud2luZC1vbi1lYWNoLWluc24tYW1kNjQtMi5zCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMTQxZjcxODE3YwotLS0gL2Rldi9udWxs CisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdW53aW5kLW9uLWVhY2gtaW5zbi1hbWQ2 NC0yLnMKQEAgLTAsMCArMSw1NCBAQAorCS5maWxlCSJ1bndpbmQtb24tZWFjaC1pbnNuLWZv by5jIgorCS50ZXh0CisJLmdsb2JsCWZvbworCS50eXBlCWZvbywgQGZ1bmN0aW9uCitmb286 CisuTEZCMDoKKwkuY2ZpX3N0YXJ0cHJvYworIyBCTE9DSyAyIHNlcTowCisjIFBSRUQ6IEVO VFJZIChGQUxMVEhSVSkKKwlwdXNocQklcmJwCisJLmNmaV9kZWZfY2ZhX29mZnNldCAxNgor CS5jZmlfb2Zmc2V0IDYsIC0xNgorCW1vdnEJJXJzcCwgJXJicAorCS5jZmlfZGVmX2NmYV9y ZWdpc3RlciA2CisJbW92cQklcmRpLCAtOCglcmJwKQorCW5vcAorICAgICAgICBwdXNocSAg ICAkLkwxCisgICAgICAgIHJldAorLkwxOgorICAgICAgICBub3AKKwlwb3BxCSVyYnAKKwku Y2ZpX2RlZl9jZmEgNywgOAorIyBTVUNDOiBFWElUIFsxMDAuMCVdIAorCXJldAorCS5jZmlf ZW5kcHJvYworLkxGRTA6CisJLnNpemUJZm9vLCAuLWZvbworCS5nbG9ibAliYXIKKwkudHlw ZQliYXIsIEBmdW5jdGlvbgorYmFyOgorLkxGQjE6CisJLmNmaV9zdGFydHByb2MKKyMgQkxP Q0sgMiBzZXE6MAorIyBQUkVEOiBFTlRSWSAoRkFMTFRIUlUpCisJcHVzaHEJJXJicAorCS5j ZmlfZGVmX2NmYV9vZmZzZXQgMTYKKwkuY2ZpX29mZnNldCA2LCAtMTYKKwltb3ZxCSVyc3As ICVyYnAKKwkuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgNgorCXN1YnEJJDgsICVyc3AKKwltb3Zx CSVyZGksIC04KCVyYnApCisJbW92cQktOCglcmJwKSwgJXJheAorCW1vdnEJJXJheCwgJXJk aQorCWNhbGwJZm9vCisJbm9wCisJbGVhdmUKKwkuY2ZpX2RlZl9jZmEgNywgOAorIyBTVUND OiBFWElUIFsxMDAuMCVdIAorCXJldAorCS5jZmlfZW5kcHJvYworLkxGRTE6CisJLnNpemUJ YmFyLCAuLWJhcgorCS5pZGVudAkiR0NDOiAoU1VTRSBMaW51eCkgNy41LjAiCisJLnNlY3Rp b24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwoKYmFzZS1jb21taXQ6IGQ5MTk1MTMx NTMwMzcwZjU2ZTc4YTJiMDg0OTI4YzExZGE1MzZkOWUKLS0gCjIuMzUuMwoK --------------2EmPzecUz6ehNphPBhn0yf2r--