From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32576 invoked by alias); 29 Jul 2012 17:11:38 -0000 Received: (qmail 32568 invoked by uid 22791); 29 Jul 2012 17:11:36 -0000 X-SWARE-Spam-Status: No, hits=0.6 required=5.0 tests=AWL,BAYES_00,DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,KHOP_THREADED,MALFORMED_FREEMAIL,NML_ADSP_CUSTOM_MED,RCVD_IN_SORBS_DUL,RDNS_DYNAMIC,SPF_HELO_PASS,SPF_NEUTRAL,TW_BJ,TW_XS X-Spam-Check-By: sourceware.org Received: from gam75-4-82-235-220-81.fbx.proxad.net (HELO siegfried.gbfo.org) (82.235.220.81) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 29 Jul 2012 17:11:21 +0000 Received: from erda.mds (localhost [127.0.0.1]) by siegfried.gbfo.org (8.13.6/8.13.6) with ESMTP id q6THBDaS026798; Sun, 29 Jul 2012 19:11:13 +0200 Received: from localhost (saffroy@localhost) by erda.mds (8.13.6/8.13.6/Submit) with ESMTP id q6THBCoQ026785; Sun, 29 Jul 2012 19:11:13 +0200 Date: Sun, 29 Jul 2012 17:11:00 -0000 From: Jean-Marc Saffroy To: Jan Kratochvil cc: gdb-patches@sourceware.org Subject: Re: [PATCH] refreshed patch for PR 11804 and PR 9904 In-Reply-To: <20120728070451.GA2167@host2.jankratochvil.net> Message-ID: References: <20120728070451.GA2167@host2.jankratochvil.net> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463802624-2006661918-1343581873=:5348" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-07/txt/msg00726.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463802624-2006661918-1343581873=:5348 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-length: 2024 Hi Jan, On Sat, 28 Jul 2012, Jan Kratochvil wrote: > 7.4.1 is too old. Here is a patch against a fresh checkout from the git mirror. > Primarily linux_nat_find_memory_regions is now reworked and renamed as > linux_find_memory_regions as GDB can now gcore also from remotely run process > via gdbserver. The testcase should be verified it also works with gdbserver > afterwards, see gdb/testsuite/boards/native-gdbserver.exp. I only tested the added test case: make -C gdb/testsuite/ check RUNTESTFLAGS="gdb.base/gcore-relro.exp" make -C gdb/testsuite/ check RUNTESTFLAGS="--target_board=native-gdbserver gdb.base/gcore-relro.exp" > Also there should be descriptive comments before each modified function. > I can write those otherwise. I'm not sure what kind you expect, so I'll let you write them. :-) > Here is missing a check: > if (separate_debug_objfile_backlink != NULL) > continue; > as separate debug info files (in /usr/lib/debug, sometimes with .debug > extension) are irrelevant for gcore. Should be good now. > Therefore if "Anonymous:" entry is not present at all (=not supported by > Linux kernel on that host) we must write out very every area as we have > no way to verify for swap-cached pages (having Anonymous > 0). > > Sure if "Anonymous:" is present and it is > 0 it also must be written > out. Ditto. > You can reproduce the "Anonymous:" problem with > http://people.redhat.com/jkratoch/relroswap.c > although it is not suitable for GDB testsuite as it needs to do huge memory > allocations to swap out (+swap in) the testcase pages. > (If you have a better idea how to make "Anonymous:" entry non-zero it is sure > welcome. I have tried madvise (MADV_DONTNEED) but it does not work.) Starting the test makes my desktop unusable (no SSD for swap yet), so I cowardly gave up. > > +set testfile "gcore-relro" > > Is hould use 'standard_testfile' like other testcases recently modified > by Tom Tromey. I hope that's ok now. Cheers, Jean-Marc -- saffroy@gmail.com ---1463802624-2006661918-1343581873=:5348 Content-Type: TEXT/x-diff; name=gcore-git.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=gcore-git.patch Content-length: 17064 ZGlmZiAtLWdpdCBhL2dkYi9kZWZzLmggYi9nZGIvZGVmcy5oDQppbmRleCA3 YmU5OWEyLi5mZWIzMTA2IDEwMDY0NA0KLS0tIGEvZ2RiL2RlZnMuaA0KKysr IGIvZ2RiL2RlZnMuaA0KQEAgLTM2Miw5ICszNjIsMTAgQEAgZXh0ZXJuIHZv aWQgaW5pdF9zb3VyY2VfcGF0aCAodm9pZCk7DQogDQogLyogRnJvbSBleGVj LmMgKi8NCiANCisvKiBNT0RJRklFRCBoYXMgdmFsdWUgLTEgZm9yIHVua25v d24sIDAgZm9yIG5vdCBtb2RpZmllZCwgMSBmb3IgbW9kaWZpZWQuICAqLw0K IHR5cGVkZWYgaW50ICgqZmluZF9tZW1vcnlfcmVnaW9uX2Z0eXBlKSAoQ09S RV9BRERSIGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwNCiAJCQkJCSBpbnQg cmVhZCwgaW50IHdyaXRlLCBpbnQgZXhlYywNCi0JCQkJCSB2b2lkICpkYXRh KTsNCisJCQkJCSBpbnQgbW9kaWZpZWQsIHZvaWQgKmRhdGEpOw0KIA0KIC8q IFRha2Ugb3ZlciB0aGUgJ2ZpbmRfbWFwcGVkX21lbW9yeScgdmVjdG9yIGZy b20gZXhlYy5jLiAgKi8NCiBleHRlcm4gdm9pZCBleGVjX3NldF9maW5kX21l bW9yeV9yZWdpb25zDQpkaWZmIC0tZ2l0IGEvZ2RiL2Zic2QtbmF0LmMgYi9n ZGIvZmJzZC1uYXQuYw0KaW5kZXggYjNlNGZhYi4uNWRiMGY1ZCAxMDA2NDQN Ci0tLSBhL2dkYi9mYnNkLW5hdC5jDQorKysgYi9nZGIvZmJzZC1uYXQuYw0K QEAgLTEzMiw3ICsxMzIsNyBAQCBmYnNkX2ZpbmRfbWVtb3J5X3JlZ2lvbnMg KGZpbmRfbWVtb3J5X3JlZ2lvbl9mdHlwZSBmdW5jLCB2b2lkICpvYmZkKQ0K IAl9DQogDQogICAgICAgLyogSW52b2tlIHRoZSBjYWxsYmFjayBmdW5jdGlv biB0byBjcmVhdGUgdGhlIGNvcmVmaWxlIHNlZ21lbnQuICAqLw0KLSAgICAg IGZ1bmMgKHN0YXJ0LCBzaXplLCByZWFkLCB3cml0ZSwgZXhlYywgb2JmZCk7 DQorICAgICAgZnVuYyAoc3RhcnQsIHNpemUsIHJlYWQsIHdyaXRlLCBleGVj LCAtMSwgb2JmZCk7DQogICAgIH0NCiANCiAgIGRvX2NsZWFudXBzIChjbGVh bnVwKTsNCmRpZmYgLS1naXQgYS9nZGIvZ2NvcmUuYyBiL2dkYi9nY29yZS5j DQppbmRleCBhNDVlNzg3Li5hOWRkMmJhIDEwMDY0NA0KLS0tIGEvZ2RiL2dj b3JlLmMNCisrKyBiL2dkYi9nY29yZS5jDQpAQCAtMzgwLDggKzM4MCw4IEBA IG1ha2Vfb3V0cHV0X3BoZHJzIChiZmQgKm9iZmQsIGFzZWN0aW9uICpvc2Vj LCB2b2lkICppZ25vcmVkKQ0KIH0NCiANCiBzdGF0aWMgaW50DQotZ2NvcmVf Y3JlYXRlX2NhbGxiYWNrIChDT1JFX0FERFIgdmFkZHIsIHVuc2lnbmVkIGxv bmcgc2l6ZSwNCi0JCSAgICAgICBpbnQgcmVhZCwgaW50IHdyaXRlLCBpbnQg ZXhlYywgdm9pZCAqZGF0YSkNCitnY29yZV9jcmVhdGVfY2FsbGJhY2sgKENP UkVfQUREUiB2YWRkciwgdW5zaWduZWQgbG9uZyBzaXplLCBpbnQgcmVhZCwN CisJCSAgICAgICBpbnQgd3JpdGUsIGludCBleGVjLCBpbnQgbW9kaWZpZWQs IHZvaWQgKmRhdGEpDQogew0KICAgYmZkICpvYmZkID0gZGF0YTsNCiAgIGFz ZWN0aW9uICpvc2VjOw0KQEAgLTM5MCw3ICszOTAsNyBAQCBnY29yZV9jcmVh dGVfY2FsbGJhY2sgKENPUkVfQUREUiB2YWRkciwgdW5zaWduZWQgbG9uZyBz aXplLA0KICAgLyogSWYgdGhlIG1lbW9yeSBzZWdtZW50IGhhcyBubyBwZXJt aXNzaW9ucyBzZXQsIGlnbm9yZSBpdCwgb3RoZXJ3aXNlDQogICAgICB3aGVu IHdlIGxhdGVyIHRyeSB0byBhY2Nlc3MgaXQgZm9yIHJlYWQvd3JpdGUsIHdl J2xsIGdldCBhbiBlcnJvcg0KICAgICAgb3IgamFtIHRoZSBrZXJuZWwuICAq Lw0KLSAgaWYgKHJlYWQgPT0gMCAmJiB3cml0ZSA9PSAwICYmIGV4ZWMgPT0g MCkNCisgIGlmIChyZWFkID09IDAgJiYgd3JpdGUgPT0gMCAmJiBleGVjID09 IDAgJiYgbW9kaWZpZWQgPT0gMCkNCiAgICAgew0KICAgICAgIGlmIChpbmZv X3ZlcmJvc2UpDQogICAgICAgICB7DQpAQCAtNDAxLDcgKzQwMSw3IEBAIGdj b3JlX2NyZWF0ZV9jYWxsYmFjayAoQ09SRV9BRERSIHZhZGRyLCB1bnNpZ25l ZCBsb25nIHNpemUsDQogICAgICAgcmV0dXJuIDA7DQogICAgIH0NCiANCi0g IGlmICh3cml0ZSA9PSAwICYmICFzb2xpYl9rZWVwX2RhdGFfaW5fY29yZSAo dmFkZHIsIHNpemUpKQ0KKyAgaWYgKHdyaXRlID09IDAgJiYgbW9kaWZpZWQg PT0gMCAmJiAhc29saWJfa2VlcF9kYXRhX2luX2NvcmUgKHZhZGRyLCBzaXpl KSkNCiAgICAgew0KICAgICAgIC8qIFNlZSBpZiB0aGlzIHJlZ2lvbiBvZiBt ZW1vcnkgbGllcyBpbnNpZGUgYSBrbm93biBmaWxlIG9uIGRpc2suDQogCSBJ ZiBzbywgd2UgY2FuIGF2b2lkIGNvcHlpbmcgaXRzIGNvbnRlbnRzIGJ5IGNs ZWFyaW5nIFNFQ19MT0FELiAgKi8NCkBAIC00MzMsMTAgKzQzMywxMiBAQCBn Y29yZV9jcmVhdGVfY2FsbGJhY2sgKENPUkVfQUREUiB2YWRkciwgdW5zaWdu ZWQgbG9uZyBzaXplLA0KIAkgICAgfQ0KIAl9DQogDQotICAgIGtlZXA6DQot ICAgICAgZmxhZ3MgfD0gU0VDX1JFQURPTkxZOw0KKyAgICBrZWVwOjsNCiAg ICAgfQ0KIA0KKyAgaWYgKHdyaXRlID09IDApDQorICAgIGZsYWdzIHw9IFNF Q19SRUFET05MWTsNCisNCiAgIGlmIChleGVjKQ0KICAgICBmbGFncyB8PSBT RUNfQ09ERTsNCiAgIGVsc2UNCkBAIC00NzcsNiArNDc5LDEwIEBAIG9iamZp bGVfZmluZF9tZW1vcnlfcmVnaW9ucyAoZmluZF9tZW1vcnlfcmVnaW9uX2Z0 eXBlIGZ1bmMsIHZvaWQgKm9iZmQpDQogICAgICAgYXNlY3Rpb24gKmlzZWMg PSBvYmpzZWMtPnRoZV9iZmRfc2VjdGlvbjsNCiAgICAgICBmbGFnd29yZCBm bGFncyA9IGJmZF9nZXRfc2VjdGlvbl9mbGFncyAoaWJmZCwgaXNlYyk7DQog DQorICAgICAgLyogU2VwYXJhdGUgZGVidWcgaW5mbyBmaWxlcyBhcmUgaXJy ZWxldmFudCBmb3IgZ2NvcmUuICAqLw0KKyAgICAgIGlmIChvYmpmaWxlLT5z ZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rICE9IE5VTEwpDQorCWNv bnRpbnVlOw0KKw0KICAgICAgIGlmICgoZmxhZ3MgJiBTRUNfQUxMT0MpIHx8 IChmbGFncyAmIFNFQ19MT0FEKSkNCiAJew0KIAkgIGludCBzaXplID0gYmZk X3NlY3Rpb25fc2l6ZSAoaWJmZCwgaXNlYyk7DQpAQCAtNDg2LDYgKzQ5Miw3 IEBAIG9iamZpbGVfZmluZF9tZW1vcnlfcmVnaW9ucyAoZmluZF9tZW1vcnlf cmVnaW9uX2Z0eXBlIGZ1bmMsIHZvaWQgKm9iZmQpDQogCQkJIDEsIC8qIEFs bCBzZWN0aW9ucyB3aWxsIGJlIHJlYWRhYmxlLiAgKi8NCiAJCQkgKGZsYWdz ICYgU0VDX1JFQURPTkxZKSA9PSAwLCAvKiBXcml0YWJsZS4gICovDQogCQkJ IChmbGFncyAmIFNFQ19DT0RFKSAhPSAwLCAvKiBFeGVjdXRhYmxlLiAgKi8N CisJCQkgLTEsIC8qIE1vZGlmaWVkIGlzIHVua25vd24uICAqLw0KIAkJCSBv YmZkKTsNCiAJICBpZiAocmV0ICE9IDApDQogCSAgICByZXR1cm4gcmV0Ow0K QEAgLTQ5OCw2ICs1MDUsNyBAQCBvYmpmaWxlX2ZpbmRfbWVtb3J5X3JlZ2lv bnMgKGZpbmRfbWVtb3J5X3JlZ2lvbl9mdHlwZSBmdW5jLCB2b2lkICpvYmZk KQ0KIAkgICAgIDEsIC8qIFN0YWNrIHNlY3Rpb24gd2lsbCBiZSByZWFkYWJs ZS4gICovDQogCSAgICAgMSwgLyogU3RhY2sgc2VjdGlvbiB3aWxsIGJlIHdy aXRhYmxlLiAgKi8NCiAJICAgICAwLCAvKiBTdGFjayBzZWN0aW9uIHdpbGwg bm90IGJlIGV4ZWN1dGFibGUuICAqLw0KKwkgICAgIDEsIC8qIFN0YWNrIHNl Y3Rpb24gd2lsbCBiZSBtb2RpZmllZC4gICovDQogCSAgICAgb2JmZCk7DQog DQogICAvKiBNYWtlIGEgaGVhcCBzZWdtZW50LiAgKi8NCkBAIC01MDYsNiAr NTE0LDcgQEAgb2JqZmlsZV9maW5kX21lbW9yeV9yZWdpb25zIChmaW5kX21l bW9yeV9yZWdpb25fZnR5cGUgZnVuYywgdm9pZCAqb2JmZCkNCiAJICAgICAx LCAvKiBIZWFwIHNlY3Rpb24gd2lsbCBiZSByZWFkYWJsZS4gICovDQogCSAg ICAgMSwgLyogSGVhcCBzZWN0aW9uIHdpbGwgYmUgd3JpdGFibGUuICAqLw0K IAkgICAgIDAsIC8qIEhlYXAgc2VjdGlvbiB3aWxsIG5vdCBiZSBleGVjdXRh YmxlLiAgKi8NCisJICAgICAxLCAvKiBIZWFwIHNlY3Rpb24gd2lsbCBiZSBt b2RpZmllZC4gICovDQogCSAgICAgb2JmZCk7DQogDQogICByZXR1cm4gMDsN CmRpZmYgLS1naXQgYS9nZGIvZ251LW5hdC5jIGIvZ2RiL2dudS1uYXQuYw0K aW5kZXggMGM0NWYyMC4uMDQ2ZTMyYSAxMDA2NDQNCi0tLSBhL2dkYi9nbnUt bmF0LmMNCisrKyBiL2dkYi9nbnUtbmF0LmMNCkBAIC0yNTU4LDcgKzI1NTgs NyBAQCBnbnVfZmluZF9tZW1vcnlfcmVnaW9ucyAoZmluZF9tZW1vcnlfcmVn aW9uX2Z0eXBlIGZ1bmMsIHZvaWQgKmRhdGEpDQogCQkgICAgIGxhc3RfcHJv dGVjdGlvbiAmIFZNX1BST1RfUkVBRCwNCiAJCSAgICAgbGFzdF9wcm90ZWN0 aW9uICYgVk1fUFJPVF9XUklURSwNCiAJCSAgICAgbGFzdF9wcm90ZWN0aW9u ICYgVk1fUFJPVF9FWEVDVVRFLA0KLQkJICAgICBkYXRhKTsNCisJCSAgICAg LTEsIGRhdGEpOw0KIAkgIGxhc3RfcmVnaW9uX2FkZHJlc3MgPSByZWdpb25f YWRkcmVzczsNCiAJICBsYXN0X3JlZ2lvbl9lbmQgPSByZWdpb25fYWRkcmVz cyArPSByZWdpb25fbGVuZ3RoOw0KIAkgIGxhc3RfcHJvdGVjdGlvbiA9IHBy b3RlY3Rpb247DQpAQCAtMjU3MSw3ICsyNTcxLDcgQEAgZ251X2ZpbmRfbWVt b3J5X3JlZ2lvbnMgKGZpbmRfbWVtb3J5X3JlZ2lvbl9mdHlwZSBmdW5jLCB2 b2lkICpkYXRhKQ0KIAkgICAgIGxhc3RfcHJvdGVjdGlvbiAmIFZNX1BST1Rf UkVBRCwNCiAJICAgICBsYXN0X3Byb3RlY3Rpb24gJiBWTV9QUk9UX1dSSVRF LA0KIAkgICAgIGxhc3RfcHJvdGVjdGlvbiAmIFZNX1BST1RfRVhFQ1VURSwN Ci0JICAgICBkYXRhKTsNCisJICAgICAtMSwgZGF0YSk7DQogDQogICByZXR1 cm4gMDsNCiB9DQpkaWZmIC0tZ2l0IGEvZ2RiL2xpbnV4LXRkZXAuYyBiL2dk Yi9saW51eC10ZGVwLmMNCmluZGV4IGI2ZjJlZmIuLjRhMzZmZTQgMTAwNjQ0 DQotLS0gYS9nZGIvbGludXgtdGRlcC5jDQorKysgYi9nZGIvbGludXgtdGRl cC5jDQpAQCAtNTQ3LDE5ICs1NDcsMjcgQEAgbGludXhfZmluZF9tZW1vcnlf cmVnaW9ucyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsDQogICAgIHJldHVy biAxOw0KIA0KICAgeHNucHJpbnRmIChmaWxlbmFtZSwgc2l6ZW9mIGZpbGVu YW1lLA0KLQkgICAgICIvcHJvYy8lZC9tYXBzIiwgY3VycmVudF9pbmZlcmlv ciAoKS0+cGlkKTsNCisJICAgICAiL3Byb2MvJWQvc21hcHMiLCBjdXJyZW50 X2luZmVyaW9yICgpLT5waWQpOw0KICAgZGF0YSA9IHRhcmdldF9maWxlaW9f cmVhZF9zdHJhbGxvYyAoZmlsZW5hbWUpOw0KKyAgaWYgKCEgZGF0YSkNCisg ICAgew0KKyAgICAgIHhzbnByaW50ZiAoZmlsZW5hbWUsIHNpemVvZiBmaWxl bmFtZSwNCisJCSAiL3Byb2MvJWQvbWFwcyIsIGN1cnJlbnRfaW5mZXJpb3Ig KCktPnBpZCk7DQorICAgICAgZGF0YSA9IHRhcmdldF9maWxlaW9fcmVhZF9z dHJhbGxvYyAoZmlsZW5hbWUpOw0KKyAgICB9DQogICBpZiAoZGF0YSkNCiAg ICAgew0KICAgICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwID0gbWFrZV9j bGVhbnVwICh4ZnJlZSwgZGF0YSk7DQogICAgICAgY2hhciAqbGluZTsNCiAN Ci0gICAgICBmb3IgKGxpbmUgPSBzdHJ0b2sgKGRhdGEsICJcbiIpOyBsaW5l OyBsaW5lID0gc3RydG9rIChOVUxMLCAiXG4iKSkNCisgICAgICBsaW5lID0g c3RydG9rIChkYXRhLCAiXG4iKTsNCisgICAgICB3aGlsZSAobGluZSkNCiAJ ew0KIAkgIFVMT05HRVNUIGFkZHIsIGVuZGFkZHIsIG9mZnNldCwgaW5vZGU7 DQogCSAgY29uc3QgY2hhciAqcGVybWlzc2lvbnMsICpkZXZpY2UsICpmaWxl bmFtZTsNCiAJICBzaXplX3QgcGVybWlzc2lvbnNfbGVuLCBkZXZpY2VfbGVu Ow0KIAkgIGludCByZWFkLCB3cml0ZSwgZXhlYzsNCisJICBpbnQgbW9kaWZp ZWQgPSAwLCBoYXNfYW5vbnltb3VzID0gMDsNCiANCiAJICByZWFkX21hcHBp bmcgKGxpbmUsICZhZGRyLCAmZW5kYWRkciwgJnBlcm1pc3Npb25zLCAmcGVy bWlzc2lvbnNfbGVuLA0KIAkJCSZvZmZzZXQsICZkZXZpY2UsICZkZXZpY2Vf bGVuLCAmaW5vZGUsICZmaWxlbmFtZSk7DQpAQCAtNTY5LDggKzU3NywzNCBA QCBsaW51eF9maW5kX21lbW9yeV9yZWdpb25zIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCwNCiAJICB3cml0ZSA9IChtZW1jaHIgKHBlcm1pc3Npb25zLCAn dycsIHBlcm1pc3Npb25zX2xlbikgIT0gMCk7DQogCSAgZXhlYyA9IChtZW1j aHIgKHBlcm1pc3Npb25zLCAneCcsIHBlcm1pc3Npb25zX2xlbikgIT0gMCk7 DQogDQorCSAgLyogVHJ5IHRvIGRldGVjdCBpZiByZWdpb24gd2FzIG1vZGlm aWVkIGJ5IHBhcnNpbmcgc21hcHMgY291bnRlcnMuICAqLw0KKwkgIGZvciAo bGluZSA9IHN0cnRvayAoTlVMTCwgIlxuIik7DQorCSAgICAgICBsaW5lICYm IGxpbmVbMF0gPj0gJ0EnICYmIGxpbmVbMF0gPD0gJ1onOw0KKwkgICAgICAg bGluZSA9IHN0cnRvayAoTlVMTCwgIlxuIikpDQorCSAgICB7DQorCSAgICAg IGNoYXIga2V5d29yZFs2NCArIDFdOw0KKwkgICAgICB1bnNpZ25lZCBsb25n IG51bWJlcjsNCisNCisJICAgICAgaWYgKHNzY2FuZihsaW5lLCAiJTY0cyVs dSBrQlxuIiwga2V5d29yZCwgJm51bWJlcikgIT0gMikNCisJCXsNCisJCSAg d2FybmluZyAoXygiRXJyb3IgcGFyc2luZyB7cyx9bWFwcyBmaWxlICclcyci KSwgZmlsZW5hbWUpOw0KKwkJICBicmVhazsNCisJCX0NCisJICAgICAgaWYg KHN0cmNtcChrZXl3b3JkLCAiQW5vbnltb3VzOiIpID09IDApDQorCQkgIGhh c19hbm9ueW1vdXMgPSAxOw0KKwkgICAgICBpZiAobnVtYmVyICE9IDAgJiYg KHN0cmNtcCAoa2V5d29yZCwgIlNoYXJlZF9EaXJ0eToiKSA9PSAwDQorCQkJ CSAgfHwgc3RyY21wIChrZXl3b3JkLCAiUHJpdmF0ZV9EaXJ0eToiKSA9PSAw DQorCQkJCSAgfHwgc3RyY21wIChrZXl3b3JkLCAiU3dhcDoiKSA9PSAwDQor CQkJCSAgfHwgc3RyY21wIChrZXl3b3JkLCAiQW5vbnltb3VzOiIpID09IDAp KQ0KKwkJbW9kaWZpZWQgPSAxOw0KKwkgICAgfQ0KKw0KKwkgIC8qIFdoZW4g IkFub255bW91czoiIGlzIG1pc3NpbmcsIHdlIGNhbid0IGJlIHN1cmUuICAq Lw0KKwkgIGlmICghIGhhc19hbm9ueW1vdXMgJiYgbW9kaWZpZWQgPT0gMCkN CisJICAgIG1vZGlmaWVkID0gLTE7DQorDQogCSAgLyogSW52b2tlIHRoZSBj YWxsYmFjayBmdW5jdGlvbiB0byBjcmVhdGUgdGhlIGNvcmVmaWxlIHNlZ21l bnQuICAqLw0KLQkgIGZ1bmMgKGFkZHIsIGVuZGFkZHIgLSBhZGRyLCByZWFk LCB3cml0ZSwgZXhlYywgb2JmZCk7DQorCSAgZnVuYyAoYWRkciwgZW5kYWRk ciAtIGFkZHIsIHJlYWQsIHdyaXRlLCBleGVjLCBtb2RpZmllZCwgb2JmZCk7 DQogCX0NCiANCiAgICAgICBkb19jbGVhbnVwcyAoY2xlYW51cCk7DQpkaWZm IC0tZ2l0IGEvZ2RiL3Byb2Nmcy5jIGIvZ2RiL3Byb2Nmcy5jDQppbmRleCA0 NDA5ZTViLi43OWYyMmRlIDEwMDY0NA0KLS0tIGEvZ2RiL3Byb2Nmcy5jDQor KysgYi9nZGIvcHJvY2ZzLmMNCkBAIC01MDc0LDcgKzUwNzQsNyBAQCBmaW5k X21lbW9yeV9yZWdpb25zX2NhbGxiYWNrIChzdHJ1Y3QgcHJtYXAgKm1hcCwN CiAJCSAgKG1hcC0+cHJfbWZsYWdzICYgTUFfUkVBRCkgIT0gMCwNCiAJCSAg KG1hcC0+cHJfbWZsYWdzICYgTUFfV1JJVEUpICE9IDAsDQogCQkgIChtYXAt PnByX21mbGFncyAmIE1BX0VYRUMpICE9IDAsDQotCQkgIGRhdGEpOw0KKwkJ ICAtMSwgZGF0YSk7DQogfQ0KIA0KIC8qIEV4dGVybmFsIGludGVyZmFjZS4g IENhbGxzIGEgY2FsbGJhY2sgZnVuY3Rpb24gb25jZSBmb3IgZWFjaA0KZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ2NvcmUtcmVscm8t bGliLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2djb3JlLXJlbHJvLWxp Yi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uZDc0 YjY5MA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9nY29yZS1yZWxyby1saWIuYw0KQEAgLTAsMCArMSwyMSBAQA0KKy8q IENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j Lg0KKw0KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4NCisNCisgICBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5DQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCisgICAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KKw0KKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLA0KKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQorICAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQ0KKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuDQorDQorICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UN CisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovDQorDQordm9pZA0K K2xpYiAodm9pZCkNCit7DQorfQ0KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvZ2NvcmUtcmVscm8tbWFpbi5jIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9nY29yZS1yZWxyby1tYWluLmMNCm5ldyBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCAwMDAwMDAwLi40NmI5ZGZlDQotLS0gL2Rldi9udWxs DQorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2djb3JlLXJlbHJvLW1h aW4uYw0KQEAgLTAsMCArMSwyNSBAQA0KKy8qIENvcHlyaWdodCAyMDEwIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KKw0KKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQi4NCisNCisgICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQ0KKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQorICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3INCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLg0KKw0KKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KKyAgIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mDQorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyAgIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQor DQorICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCisgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovDQorDQorZXh0ZXJuIHZvaWQgbGliICh2b2lkKTsN CisNCitpbnQNCittYWluICh2b2lkKQ0KK3sNCisgIGxpYiAoKTsNCisgIHJl dHVybiAwOw0KK30NCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2djb3JlLXJlbHJvLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Z2NvcmUtcmVscm8uZXhwDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMC4uYWNlODBlNA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9nY29yZS1yZWxyby5leHANCkBAIC0wLDAgKzEs NzggQEANCisjIENvcHlyaWdodCAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLg0KKw0KKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCisj IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQorIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcg0KKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4N CisjDQorIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCisjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mDQorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQorIyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KKyMNCisjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlDQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCisN CitpZiB7W3NraXBfc2hsaWJfdGVzdHNdfSB7DQorICAgIHJldHVybiAwDQor fQ0KKw0KK3N0YW5kYXJkX3Rlc3RmaWxlIGdjb3JlLXJlbHJvLW1haW4uYw0K K3NldCBsaWJmaWxlIGdjb3JlLXJlbHJvLWxpYg0KK3NldCBzcmNmaWxlX2xp YiAke2xpYmZpbGV9LmMNCitzZXQgYmluZmlsZV9saWIgW3N0YW5kYXJkX291 dHB1dF9maWxlICR7bGliZmlsZX0uc29dDQorc2V0IGdjb3JlZmlsZSAke2Jp bmZpbGV9Lmdjb3JlDQorc2V0IG9iamZpbGUgW3N0YW5kYXJkX291dHB1dF9m aWxlICR7dGVzdGZpbGV9Lm9dDQorDQorIGlmIHsgW2dkYl9jb21waWxlX3No bGliICR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlX2xpYn0gJHtiaW5m aWxlX2xpYn0ge2RlYnVnfV0gIT0gIiINCisgICAgICB8fCBbZ2RiX2NvbXBp bGUgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9ICR7b2JqZmlsZX0g b2JqZWN0IHtkZWJ1Z31dICE9ICIiIH0gew0KKyAgICAgIHVudGVzdGVkICR7 dGVzdGZpbGV9LmV4cA0KKyAgICAgIHJldHVybiAtMQ0KKyB9DQorIHNldCBv cHRzIFtsaXN0IGRlYnVnIHNobGliPSR7YmluZmlsZV9saWJ9IGFkZGl0aW9u YWxfZmxhZ3M9LVdsLC16LHJlbHJvXQ0KKyBpZiB7IFtnZGJfY29tcGlsZSAk e29iamZpbGV9ICR7YmluZmlsZX0gZXhlY3V0YWJsZSAkb3B0c10gIT0gIiIg fSB7DQorICAgICAgdW5zdXBwb3J0ZWQgIi1XbCwteixyZWxybyBjb21waWxh dGlvbiBmYWlsZWQiDQorICAgICAgcmV0dXJuIC0xDQorIH0NCisNCitjbGVh bl9yZXN0YXJ0ICR7YmluZmlsZX0NCitnZGJfbG9hZF9zaGxpYnMgJHtiaW5m aWxlX2xpYn0NCisNCisjIERvZXMgdGhpcyBnZGIgc3VwcG9ydCBnY29yZT8N CitzZXQgdGVzdCAiaGVscCBnY29yZSINCitnZGJfdGVzdF9tdWx0aXBsZSAk dGVzdCAkdGVzdCB7DQorICAgIC1yZSAiVW5kZWZpbmVkIGNvbW1hbmQ6IC5n Y29yZS4qXHJcbiRnZGJfcHJvbXB0ICQiIHsNCisJIyBnY29yZSBjb21tYW5k IG5vdCBzdXBwb3J0ZWQgLS0gbm90aGluZyB0byB0ZXN0IGhlcmUuDQorCXVu c3VwcG9ydGVkICJnZGIgZG9lcyBub3Qgc3VwcG9ydCBnY29yZSBvbiB0aGlz IHRhcmdldCINCisJcmV0dXJuIC0xOw0KKyAgICB9DQorICAgIC1yZSAiU2F2 ZSBhIGNvcmUgZmlsZSAuKlxyXG4kZ2RiX3Byb21wdCAkIiB7DQorCXBhc3Mg JHRlc3QNCisgICAgfQ0KK30NCisNCitpZiB7ICFbcnVudG8gbGliXSB9IHRo ZW4gew0KKyAgICByZXR1cm4gLTENCit9DQorDQorc2V0IGVzY2FwZWRmaWxl bmFtZSBbc3RyaW5nX3RvX3JlZ2V4cCAke2djb3JlZmlsZX1dDQorDQorc2V0 IHRlc3QgInNhdmUgYSBjb3JlZmlsZSINCitnZGJfdGVzdF9tdWx0aXBsZSAi Z2NvcmUgJHtnY29yZWZpbGV9IiAkdGVzdCB7DQorICAgIC1yZSAiU2F2ZWQg Y29yZWZpbGUgJHtlc2NhcGVkZmlsZW5hbWV9XHJcbiRnZGJfcHJvbXB0ICQi IHsNCisJcGFzcyAkdGVzdA0KKyAgICB9DQorICAgIC1yZSAiQ2FuJ3QgY3Jl YXRlIGEgY29yZWZpbGVcclxuJGdkYl9wcm9tcHQgJCIgew0KKwl1bnN1cHBv cnRlZCAkdGVzdA0KKwlyZXR1cm4gLTENCisgICAgfQ0KK30NCisNCisjIE5v dyByZXN0YXJ0IGdkYiBhbmQgbG9hZCB0aGUgY29yZWZpbGUuDQorDQorY2xl YW5fcmVzdGFydCAke2JpbmZpbGV9DQorZ2RiX2xvYWRfc2hsaWJzICR7Ymlu ZmlsZV9saWJ9DQorDQorZ2RiX3Rlc3QgImNvcmUgJHtnY29yZWZpbGV9IiAi Q29yZSB3YXMgZ2VuZXJhdGVkIGJ5IC4qIiAicmUtbG9hZCBnZW5lcmF0ZWQg Y29yZWZpbGUiDQorDQorZ2RiX3Rlc3QgImZyYW1lIiAiIzAgXFteXHJcblxd KiBsaWIgLioiICJsaWJyYXJ5IGdvdCBsb2FkZWQiDQo= ---1463802624-2006661918-1343581873=:5348--