From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v6 12/24] xsplice, symbols: Implement symbol name resolution on address. Date: Wed, 6 Apr 2016 23:49:31 -0400 Message-ID: <1460000983-28170-13-git-send-email-konrad.wilk@oracle.com> References: <1460000983-28170-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ao0xG-0004jk-NR for xen-devel@lists.xenproject.org; Thu, 07 Apr 2016 03:50:02 +0000 In-Reply-To: <1460000983-28170-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, konrad@kernel.org, ross.lagerwall@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.com, andrew.cooper3@citrix.com Cc: Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+CgpJZiBpbiB0 aGUgcGF5bG9hZCB3ZSBkbyBub3QgaGF2ZSB0aGUgb2xkX2FkZHIgd2UgY2FuIHJlc29sdmUKdGhl IHZpcnR1YWwgYWRkcmVzcyBiYXNlZCBvbiB0aGUgVU5ERUZpbmVkIHN5bWJvbHMuCgpXZSBhbHNv IHVzZSBhbiBib29sZWFuIGZsYWc6IG5ld19zeW1ib2wgdG8gdHJhY2sgc3ltYm9scy4gVGhlIHVz dWFsCmNhc2UgdGhpcyBpcyB1c2VkIGlzIGJ5OgoKKiBBIHBheWxvYWQgbWF5IGludHJvZHVjZSBh IG5ldyBzeW1ib2wKKiBBIHBheWxvYWQgbWF5IG92ZXJyaWRlIGFuIGV4aXN0aW5nIHN5bWJvbCAo aW50cm9kdWNlZCBpbiBYZW4gb3IgYW5vdGhlcgogIHBheWxvYWQpCiogT3ZlcnJpZGluZyBzeW1i b2xzIG11c3QgZXhpc3QgaW4gdGhlIHN5bXRhYiBmb3IgYmFja3RyYWNlcy4KKiBBIHBheWxvYWQg bXVzdCBhbHdheXMgbGluayBhZ2FpbnN0IHRoZSBvYmplY3Qgd2hpY2ggZGVmaW5lcyB0aGUgbmV3 IHN5bWJvbC4KCkNvbnNpZGVyaW5nIHRoYXQgcGF5bG9hZHMgbWF5IGJlIGxvYWRlZCBpbiBhbnkg b3JkZXIgaXQgd291bGQgYmUgaW5jb3JyZWN0IHRvCmxpbmsgYWdhaW5zdCBhIHBheWxvYWQgd2hp Y2ggc2ltcGx5IG92ZXJyaWRlcyBhIHN5bWJvbCBiZWNhdXNlIHlvdSBjb3VsZCBlbmQKdXAgd2l0 aCBhIGNoYWluIG9mIGp1bXBzIHdoaWNoIGlzIGluZWZmaWNpZW50IGFuZCBtYXkgcmVzdWx0IGlu IHRoZSBleHBlY3RlZApmdW5jdGlvbiBub3QgYmVpbmcgZXhlY3V0ZWQuCgpBbHNvIHdlIGluY2x1 ZGUgYSBsb2NhbCBkZWZpbml0aW9uIGJsb2NrIGluIHRoZSBzeW1ib2xzLmMgZmlsZS4KClNpZ25l ZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+ CgotLS0KQ2M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+CkNjOiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPgoKdjE6IFJvc3Mgb3JpZ2luYWwgdmVyc2lvbi4KdjI6IEluY2x1ZGUgdGVzdC1jYXNlIGFu ZCBkb2N1bWVudCB1cGRhdGUuCnYyOiBzL3NpemVfdC9zc2l6ZV90LwogICAgSW5jbHVkZSBjb3Jl X3RleHRfc2l6ZSwgY29yZV90ZXh0IGNhbGN1bGF0aW9uCnY0OiBDYXN0IG9uIGRwcmludGsgdG8g dWludDY0X3QgdG8gbWFrZSBFTEYgMzJiaXQgYnVpbGQuCnY2OiBSZWJhc2Ugd2hlcmUgdGhlIHNw aW5sb2NrIGlzIG5vIG1vcmUgcmVjdXJzaXZlLiBEcm9wIHRoZSBzcGlubG9jawogICAgdXNhZ2Ug aW4geHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lCi0tLQotLS0KIHhlbi9hcmNoL3g4Ni9N YWtlZmlsZSAgICAgICAgICAgICAgIHwgIDE2ICsrKy0KIHhlbi9hcmNoL3g4Ni90ZXN0L01ha2Vm aWxlICAgICAgICAgIHwgICA0ICstCiB4ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29ybGQu YyB8ICAgNSArLQogeGVuL2NvbW1vbi9zeW1ib2xzLmMgICAgICAgICAgICAgICAgfCAgMzIgKysr KysrKysKIHhlbi9jb21tb24veHNwbGljZS5jICAgICAgICAgICAgICAgIHwgMTU2ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQogeGVuL2NvbW1vbi94c3BsaWNlX2VsZi5jICAg ICAgICAgICAgfCAgMjAgKysrKy0KIHhlbi9pbmNsdWRlL3hlbi9zeW1ib2xzLmggICAgICAgICAg IHwgICAyICsKIHhlbi9pbmNsdWRlL3hlbi94c3BsaWNlLmggICAgICAgICAgIHwgICA4ICsrCiA4 IGZpbGVzIGNoYW5nZWQsIDIzMSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvTWFrZWZpbGUKaW5k ZXggY2Q0YWJkNi4uZDg1Mjg3ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L01ha2VmaWxlCisr KyBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQpAQCAtNzIsNiArNzIsMTIgQEAgZWZpLXkgOj0gJChz aGVsbCBpZiBbICEgLXIgJChCQVNFRElSKS9pbmNsdWRlL3hlbi9jb21waWxlLmggLW8gXAogICAg ICAgICAgICAgICAgICAgICAgIC1PICQoQkFTRURJUikvaW5jbHVkZS94ZW4vY29tcGlsZS5oIF07 IHRoZW4gXAogICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJyQoVEFSR0VUKS5lZmknOyBm aSkKIAoraWZkZWYgQ09ORklHX1hTUExJQ0UKK2FsbF9zeW1ib2xzID0gLS1hbGwtc3ltYm9scwor ZWxzZQorYWxsX3N5bWJvbHMgPQorZW5kaWYKKwogJChUQVJHRVQpOiAkKFRBUkdFVCktc3ltcyAk KGVmaS15KSBib290L21rZWxmMzIKIAkuL2Jvb3QvbWtlbGYzMiAkKFRBUkdFVCktc3ltcyAkKFRB UkdFVCkgMHgxMDAwMDAgXAogCWAkKE5NKSAtbnIgJChUQVJHRVQpLXN5bXMgfCBoZWFkIC1uIDEg fCBzZWQgLWUgJ3MvXlwoW14gXSpcKS4qLzB4XDEvJ2AKQEAgLTExMSwxMiArMTE3LDE0IEBAICQo VEFSR0VUKS1zeW1zOiBwcmVsaW5rLm8geGVuLmxkcyAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2xz LWR1bW15Lm8KIAkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vIFwKIAkg ICAgJChCQVNFRElSKS9jb21tb24vc3ltYm9scy1kdW1teS5vIC1vICQoQEQpLy4kKEBGKS4wCiAJ JChOTSkgLXBhIC0tZm9ybWF0PXN5c3YgJChARCkvLiQoQEYpLjAgXAotCQl8ICQoQkFTRURJUikv dG9vbHMvc3ltYm9scyAtLXN5c3YgLS1zb3J0ID4kKEBEKS8uJChARikuMC5TCisJCXwgJChCQVNF RElSKS90b29scy9zeW1ib2xzICQoYWxsX3N5bWJvbHMpIC0tc3lzdiAtLXNvcnQgXAorCQk+JChA RCkvLiQoQEYpLjAuUwogCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8uJChA RikuMC5vCiAJJChMRCkgJChMREZMQUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsubyBcCiAJICAg ICQoQEQpLy4kKEBGKS4wLm8gLW8gJChARCkvLiQoQEYpLjEKIAkkKE5NKSAtcGEgLS1mb3JtYXQ9 c3lzdiAkKEBEKS8uJChARikuMSBcCi0JCXwgJChCQVNFRElSKS90b29scy9zeW1ib2xzIC0tc3lz diAtLXNvcnQgLS13YXJuLWR1cCA+JChARCkvLiQoQEYpLjEuUworCQl8ICQoQkFTRURJUikvdG9v bHMvc3ltYm9scyAkKGFsbF9zeW1ib2xzKSAtLXN5c3YgLS1zb3J0IC0td2Fybi1kdXAgXAorCQk+ JChARCkvLiQoQEYpLjEuUwogCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8u JChARikuMS5vCiAJJChMRCkgJChMREZMQUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsubyBcCiAJ ICAgICQoQEQpLy4kKEBGKS4xLm8gLW8gJEAKQEAgLTE0MCwxNCArMTQ4LDE0IEBAICQoVEFSR0VU KS5lZmk6IHByZWxpbmstZWZpLm8gZWZpLmxkcyBlZmkvcmVsb2NzLWR1bW15Lm8gJChCQVNFRElS KS9jb21tb24vc3ltYm9sCiAJICAgICAgICAgICAgICAgICQoQkFTRURJUikvY29tbW9uL3N5bWJv bHMtZHVtbXkubyAtbyAkKEBEKS8uJChARikuJChiYXNlKS4wICYmKSA6CiAJJChndWFyZCkgZWZp L21rcmVsb2MgJChmb3JlYWNoIGJhc2UsJChWSVJUX0JBU0UpICQoQUxUX0JBU0UpLCQoQEQpLy4k KEBGKS4kKGJhc2UpLjApID4kKEBEKS8uJChARikuMHIuUwogCSQoZ3VhcmQpICQoTk0pIC1wYSAt LWZvcm1hdD1zeXN2ICQoQEQpLy4kKEBGKS4kKFZJUlRfQkFTRSkuMCBcCi0JCXwgJChndWFyZCkg JChCQVNFRElSKS90b29scy9zeW1ib2xzIC0tc3lzdiAtLXNvcnQgPiQoQEQpLy4kKEBGKS4wcy5T CisJCXwgJChndWFyZCkgJChCQVNFRElSKS90b29scy9zeW1ib2xzICQoYWxsX3N5bWJvbHMpIC0t c3lzdiAtLXNvcnQgPiQoQEQpLy4kKEBGKS4wcy5TCiAJJChndWFyZCkgJChNQUtFKSAtZiAkKEJB U0VESVIpL1J1bGVzLm1rICQoQEQpLy4kKEBGKS4wci5vICQoQEQpLy4kKEBGKS4wcy5vCiAJJChm b3JlYWNoIGJhc2UsICQoVklSVF9CQVNFKSAkKEFMVF9CQVNFKSwgXAogCSAgICAgICAgICAkKGd1 YXJkKSAkKExEKSAkKGNhbGwgRUZJX0xERkxBR1MsJChiYXNlKSkgLVQgZWZpLmxkcyAtTiAkPCBc CiAJICAgICAgICAgICAgICAgICQoQEQpLy4kKEBGKS4wci5vICQoQEQpLy4kKEBGKS4wcy5vIC1v ICQoQEQpLy4kKEBGKS4kKGJhc2UpLjEgJiYpIDoKIAkkKGd1YXJkKSBlZmkvbWtyZWxvYyAkKGZv cmVhY2ggYmFzZSwkKFZJUlRfQkFTRSkgJChBTFRfQkFTRSksJChARCkvLiQoQEYpLiQoYmFzZSku MSkgPiQoQEQpLy4kKEBGKS4xci5TCiAJJChndWFyZCkgJChOTSkgLXBhIC0tZm9ybWF0PXN5c3Yg JChARCkvLiQoQEYpLiQoVklSVF9CQVNFKS4xIFwKLQkJfCAkKGd1YXJkKSAkKEJBU0VESVIpL3Rv b2xzL3N5bWJvbHMgLS1zeXN2IC0tc29ydCA+JChARCkvLiQoQEYpLjFzLlMKKwkJfCAkKGd1YXJk KSAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgJChhbGxfc3ltYm9scykgLS1zeXN2IC0tc29ydCA+ JChARCkvLiQoQEYpLjFzLlMKIAkkKGd1YXJkKSAkKE1BS0UpIC1mICQoQkFTRURJUikvUnVsZXMu bWsgJChARCkvLiQoQEYpLjFyLm8gJChARCkvLiQoQEYpLjFzLm8KIAkkKGd1YXJkKSAkKExEKSAk KGNhbGwgRUZJX0xERkxBR1MsJChWSVJUX0JBU0UpKSAtVCBlZmkubGRzIC1OICQ8IFwKIAkgICAg ICAgICAgICAgICAgJChARCkvLiQoQEYpLjFyLm8gJChARCkvLiQoQEYpLjFzLm8gLW8gJEAKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L01ha2VmaWxlIGIveGVuL2FyY2gveDg2L3Rlc3Qv TWFrZWZpbGUKaW5kZXggYjljZjEzYy4uYmFhNDgyMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L3Rlc3QvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKQEAgLTI2LDE0 ICsyNiwxMiBAQCBjbGVhbjo6CiAjIHRoZSBsYXN0IGVudHJ5IGluIHRoZSBidWlsZCB0YXJnZXQu CiAjCiAuUEhPTlk6IGNvbmZpZy5oCi1jb25maWcuaDogT0xEX0NPREU9JChjYWxsIENPREVfQURE UiwkKEJBU0VESVIpL3hlbi1zeW1zLHhlbl9leHRyYV92ZXJzaW9uKQogY29uZmlnLmg6IE9MRF9D T0RFX1NaPSQoY2FsbCBDT0RFX1NaLCQoQkFTRURJUikveGVuLXN5bXMseGVuX2V4dHJhX3ZlcnNp b24pCiBjb25maWcuaDogTkVXX0NPREVfU1o9JChjYWxsIENPREVfU1osJDwseGVuX2hlbGxvX3dv cmxkKQogY29uZmlnLmg6IHhlbl9oZWxsb193b3JsZF9mdW5jLm8KIAkoc2V0IC1lOyBcCiAJIGVj aG8gIiNkZWZpbmUgTkVXX0NPREVfU1ogJChORVdfQ09ERV9TWikiOyBcCi0JIGVjaG8gIiNkZWZp bmUgT0xEX0NPREVfU1ogJChPTERfQ09ERV9TWikiOyBcCi0JIGVjaG8gIiNkZWZpbmUgT0xEX0NP REUgJChPTERfQ09ERSkiKSA+ICRACisJIGVjaG8gIiNkZWZpbmUgT0xEX0NPREVfU1ogJChPTERf Q09ERV9TWikiKSA+ICRACiAKIC5QSE9OWTogeHNwbGljZQogeHNwbGljZTogY29uZmlnLmgKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZC5jIGIveGVuL2FyY2gv eDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKaW5kZXggNjdiYmU2NS4uMmI5OTM2OSAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKKysrIGIveGVuL2FyY2gv eDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKQEAgLTEwLDExICsxMCwxNCBAQAogc3RhdGljIGNo YXIgeGVuX2hlbGxvX3dvcmxkX25hbWVbXSA9ICJ4ZW5faGVsbG9fd29ybGQiOwogZXh0ZXJuIGNv bnN0IGNoYXIgKnhlbl9oZWxsb193b3JsZCh2b2lkKTsKIAorLyogRXh0ZXJuYWwgc3ltYm9sLiAq LworZXh0ZXJuIGNvbnN0IGNoYXIgKnhlbl9leHRyYV92ZXJzaW9uKHZvaWQpOworCiBzdHJ1Y3Qg eHNwbGljZV9wYXRjaF9mdW5jIF9fc2VjdGlvbigiLnhzcGxpY2UuZnVuY3MiKSB4c3BsaWNlX3hl bl9oZWxsb193b3JsZCA9IHsKICAgICAudmVyc2lvbiA9IFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9O LAogICAgIC5uYW1lID0geGVuX2hlbGxvX3dvcmxkX25hbWUsCiAgICAgLm5ld19hZGRyID0gKHVu c2lnbmVkIGxvbmcpKHhlbl9oZWxsb193b3JsZCksCi0gICAgLm9sZF9hZGRyID0gT0xEX0NPREUs CisgICAgLm9sZF9hZGRyID0gKHVuc2lnbmVkIGxvbmcpKHhlbl9leHRyYV92ZXJzaW9uKSwKICAg ICAubmV3X3NpemUgPSBORVdfQ09ERV9TWiwKICAgICAub2xkX3NpemUgPSBPTERfQ09ERV9TWiwK IH07CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3N5bWJvbHMuYyBiL3hlbi9jb21tb24vc3ltYm9s cy5jCmluZGV4IGIxOGRkY2QxLi5hMjhiMWU3IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3N5bWJv bHMuYworKysgYi94ZW4vY29tbW9uL3N5bWJvbHMuYwpAQCAtMjA3LDMgKzIwNywzNSBAQCBpbnQg eGVuc3ltc19yZWFkKHVpbnQzMl90ICpzeW1udW0sIGNoYXIgKnR5cGUsCiAKICAgICByZXR1cm4g MDsKIH0KKwordW5zaWduZWQgbG9uZyBzeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIg KnN5bW5hbWUpCit7CisgICAgY2hhciBuYW1lW0tTWU1fTkFNRV9MRU4gKyAxXSA9IHswfTsKKyAg ICB1aW50MzJfdCBzeW1udW07CisgICAgY2hhciB0eXBlOworICAgIHVpbnQ2NF90IGFkZHI7Cisg ICAgaW50IHJjOworCisgICAgZG8geworCisgICAgICAgIHJjID0geGVuc3ltc19yZWFkKCZzeW1u dW0sICZ0eXBlLCAmYWRkciwgbmFtZSk7CisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICBy ZXR1cm4gcmM7CisKKyAgICAgICAgaWYgKCAhc3RyY21wKG5hbWUsIHN5bW5hbWUpICkKKyAgICAg ICAgICAgIHJldHVybiBhZGRyOworCisgICAgfSB3aGlsZSAoIG5hbWVbMF0gIT0gJ1wwJyApOwor CisgICAgcmV0dXJuIDA7Cit9CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBD CisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdp ZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi94c3BsaWNlLmMgYi94ZW4vY29tbW9uL3hzcGxpY2UuYwppbmRleCAyZGY4 NzllLi5iMjM1NjBlIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3hzcGxpY2UuYworKysgYi94ZW4v Y29tbW9uL3hzcGxpY2UuYwpAQCAtMTQsNiArMTQsNyBAQAogI2luY2x1ZGUgPHhlbi9zbXAuaD4K ICNpbmNsdWRlIDx4ZW4vc29mdGlycS5oPgogI2luY2x1ZGUgPHhlbi9zcGlubG9jay5oPgorI2lu Y2x1ZGUgPHhlbi9zeW1ib2xzLmg+CiAjaW5jbHVkZSA8eGVuL3ZtYXAuaD4KICNpbmNsdWRlIDx4 ZW4vd2FpdC5oPgogI2luY2x1ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgpAQCAtNTMsNiArNTQsOSBA QCBzdHJ1Y3QgcGF5bG9hZCB7CiAgICAgc3RydWN0IGxpc3RfaGVhZCBhcHBsaWVkX2xpc3Q7ICAg ICAgIC8qIExpbmtlZCB0byAnYXBwbGllZF9saXN0Jy4gKi8KICAgICBzdHJ1Y3QgeHNwbGljZV9w YXRjaF9mdW5jX2ludGVybmFsICpmdW5jczsgICAgLyogVGhlIGFycmF5IG9mIGZ1bmN0aW9ucyB0 byBwYXRjaC4gKi8KICAgICB1bnNpZ25lZCBpbnQgbmZ1bmNzOyAgICAgICAgICAgICAgICAgLyog TnIgb2YgZnVuY3Rpb25zIHRvIHBhdGNoLiAqLworICAgIHN0cnVjdCB4c3BsaWNlX3N5bWJvbCAq c3ltdGFiOyAgICAgICAvKiBBbGwgc3ltYm9scy4gKi8KKyAgICBjaGFyICpzdHJ0YWI7ICAgICAg ICAgICAgICAgICAgICAgICAgLyogUG9pbnRlciB0byAuc3RydGFiLiAqLworICAgIHVuc2lnbmVk IGludCBuc3ltczsgICAgICAgICAgICAgICAgICAvKiBOciBvZiBlbnRyaWVzIGluIC5zdHJ0YWIg YW5kIHN5bWJvbHMuICovCiAgICAgY2hhciBuYW1lW1hFTl9YU1BMSUNFX05BTUVfU0laRV07ICAg IC8qIE5hbWUgb2YgaXQuICovCiB9OwogCkBAIC0xMTYsNiArMTIwLDI4IEBAIHN0YXRpYyBpbnQg dmVyaWZ5X3BheWxvYWQoY29uc3QgeGVuX3N5c2N0bF94c3BsaWNlX3VwbG9hZF90ICp1cGxvYWQs IGNoYXIgKm4pCiAgICAgcmV0dXJuIDA7CiB9CiAKK3Vuc2lnbmVkIGxvbmcgeHNwbGljZV9zeW1i b2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIgKnN5bW5hbWUpCit7CisgICAgc3RydWN0IHBh eWxvYWQgKmRhdGE7CisKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnBheWxvYWRfbG9jaykp OworICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBkYXRhLCAmcGF5bG9hZF9saXN0LCBsaXN0ICkK KyAgICB7CisgICAgICAgIHVuc2lnbmVkIGludCBpOworCisgICAgICAgIGZvciAoIGkgPSAwOyBp IDwgZGF0YS0+bnN5bXM7IGkrKyApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggIWRhdGEt PnN5bXRhYltpXS5uZXdfc3ltYm9sICkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAg ICAgICAgICAgaWYgKCAhc3RyY21wKGRhdGEtPnN5bXRhYltpXS5uYW1lLCBzeW1uYW1lKSApCisg ICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEtPnN5bXRhYltpXS52YWx1ZTsKKyAgICAgICAgfQor ICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgc3RydWN0IHBheWxvYWQgKmZpbmRf cGF5bG9hZChjb25zdCBjaGFyICpuYW1lKQogewogICAgIHN0cnVjdCBwYXlsb2FkICpkYXRhLCAq Zm91bmQgPSBOVUxMOwpAQCAtMzc2LDExICs0MDIsMTI5IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9w YXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAgICBmb3IgKCBqID0gMDsgaiA8 IEFSUkFZX1NJWkUoZi0+dS5wYWQpOyBqKysgKQogICAgICAgICAgICAgaWYgKCBmLT51LnBhZFtq XSApCiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAgLyogTG9va3Vw IGZ1bmN0aW9uJ3Mgb2xkIGFkZHJlc3MgaWYgbm90IGFscmVhZHkgcmVzb2x2ZWQuICovCisgICAg ICAgIGlmICggIWYtPm9sZF9hZGRyICkKKyAgICAgICAgeworICAgICAgICAgICAgZi0+b2xkX2Fk ZHIgPSBzeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGYtPm5hbWUpOworICAgICAgICAgICAgaWYgKCAh Zi0+b2xkX2FkZHIgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGYtPm9sZF9hZGRy ID0geHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGYtPm5hbWUpOworICAgICAgICAgICAg ICAgIGlmICggIWYtPm9sZF9hZGRyICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfRVJSICIlcyVzOiBDb3VsZCBub3QgcmVzb2x2ZSBvbGQgYWRk cmVzcyBvZiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFhTUExJQ0UsIGVsZi0+ bmFtZSwgZi0+bmFtZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PRU5UOworICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9H X0RFQlVHLCAiJXMlczogUmVzb2x2ZWQgb2xkIGFkZHJlc3MgJXMgPT4gMHglIlBSSXg2NCJcbiIs CisgICAgICAgICAgICAgICAgICAgWFNQTElDRSwgZWxmLT5uYW1lLCBmLT5uYW1lLCBmLT5vbGRf YWRkcik7CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGJv b2xfdCBpc19wYXlsb2FkX3N5bWJvbChjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3N5bSAq c3ltKQoreworICAgIGlmICggc3ltLT5zeW0tPnN0X3NobmR4ID09IFNITl9VTkRFRiB8fAorICAg ICAgICAgc3ltLT5zeW0tPnN0X3NobmR4ID49IGVsZi0+aGRyLT5lX3NobnVtICkKKyAgICAgICAg cmV0dXJuIDA7CisKKyAgICByZXR1cm4gKGVsZi0+c2VjW3N5bS0+c3ltLT5zdF9zaG5keF0uc2Vj LT5zaF9mbGFncyAmIFNIRl9BTExPQykgJiYKKyAgICAgICAgICAgICAoRUxGNjRfU1RfVFlQRShz eW0tPnN5bS0+c3RfaW5mbykgPT0gU1RUX09CSkVDVCB8fAorICAgICAgICAgICAgICBFTEY2NF9T VF9UWVBFKHN5bS0+c3ltLT5zdF9pbmZvKSA9PSBTVFRfRlVOQyk7Cit9CisKK3N0YXRpYyBpbnQg YnVpbGRfc3ltYm9sX3RhYmxlKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpCit7CisgICAg dW5zaWduZWQgaW50IGksIGosIG5zeW1zID0gMDsKKyAgICBzaXplX3Qgc3RydGFiX2xlbiA9IDA7 CisgICAgc3RydWN0IHhzcGxpY2Vfc3ltYm9sICpzeW10YWI7CisgICAgY2hhciAqc3RydGFiOwor CisgICAgQVNTRVJUKHBheWxvYWQtPm5mdW5jcyk7CisKKyAgICAvKiBSZWNhbGwgdGhhdCBzZWN0 aW9uIEAwIGlzIGFsd2F5cyBOVUxMLiAqLworICAgIGZvciAoIGkgPSAxOyBpIDwgZWxmLT5uc3lt OyBpKysgKQorICAgIHsKKyAgICAgICAgaWYgKCBpc19wYXlsb2FkX3N5bWJvbChlbGYsIGVsZi0+ c3ltICsgaSkgKQorICAgICAgICB7CisgICAgICAgICAgICBuc3ltcysrOworICAgICAgICAgICAg c3RydGFiX2xlbiArPSBzdHJsZW4oZWxmLT5zeW1baV0ubmFtZSkgKyAxOworICAgICAgICB9Cisg ICAgfQorCisgICAgc3ltdGFiID0geG1hbGxvY19hcnJheShzdHJ1Y3QgeHNwbGljZV9zeW1ib2ws IG5zeW1zKTsKKyAgICBzdHJ0YWIgPSB4bWFsbG9jX2FycmF5KGNoYXIsIHN0cnRhYl9sZW4pOwor CisgICAgaWYgKCAhc3RydGFiIHx8ICFzeW10YWIgKQorICAgIHsKKyAgICAgICAgeGZyZWUoc3Ry dGFiKTsKKyAgICAgICAgeGZyZWUoc3ltdGFiKTsKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07Cisg ICAgfQorCisgICAgbnN5bXMgPSAwOworICAgIHN0cnRhYl9sZW4gPSAwOworICAgIGZvciAoIGkg PSAxOyBpIDwgZWxmLT5uc3ltOyBpKysgKQorICAgIHsKKyAgICAgICAgaWYgKCBpc19wYXlsb2Fk X3N5bWJvbChlbGYsIGVsZi0+c3ltICsgaSkgKQorICAgICAgICB7CisgICAgICAgICAgICBzeW10 YWJbbnN5bXNdLm5hbWUgPSBzdHJ0YWIgKyBzdHJ0YWJfbGVuOworICAgICAgICAgICAgc3ltdGFi W25zeW1zXS5zaXplID0gZWxmLT5zeW1baV0uc3ltLT5zdF9zaXplOworICAgICAgICAgICAgc3lt dGFiW25zeW1zXS52YWx1ZSA9IGVsZi0+c3ltW2ldLnN5bS0+c3RfdmFsdWU7CisgICAgICAgICAg ICBzeW10YWJbbnN5bXNdLm5ld19zeW1ib2wgPSAwOyAvKiBUbyBiZSBjaGVja2VkIGJlbG93LiAq LworICAgICAgICAgICAgc3RydGFiX2xlbiArPSBzdHJsY3B5KHN0cnRhYiArIHN0cnRhYl9sZW4s IGVsZi0+c3ltW2ldLm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS1NZ TV9OQU1FX0xFTikgKyAxOworICAgICAgICAgICAgbnN5bXMrKzsKKyAgICAgICAgfQorICAgIH0K KworICAgIGZvciAoIGkgPSAwOyBpIDwgbnN5bXM7IGkrKyApCisgICAgeworICAgICAgICBib29s X3QgZm91bmQgPSAwOworCisgICAgICAgIGZvciAoIGogPSAwOyBqIDwgcGF5bG9hZC0+bmZ1bmNz OyBqKysgKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIHN5bXRhYltpXS52YWx1ZSA9PSBw YXlsb2FkLT5mdW5jc1tqXS5uZXdfYWRkciApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgZm91bmQgPSAxOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg ICAgICB9CisKKyAgICAgICAgaWYgKCAhZm91bmQgKQorICAgICAgICB7CisgICAgICAgICAgICBp ZiAoIHhzcGxpY2Vfc3ltYm9sc19sb29rdXBfYnlfbmFtZShzeW10YWJbaV0ubmFtZSkgKQorICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSIFhTUExJQ0UgIiVz OiBkdXBsaWNhdGUgbmV3IHN5bWJvbDogJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGVs Zi0+bmFtZSwgc3ltdGFiW2ldLm5hbWUpOworICAgICAgICAgICAgICAgIHhmcmVlKHN5bXRhYik7 CisgICAgICAgICAgICAgICAgeGZyZWUoc3RydGFiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g LUVFWElTVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN5bXRhYltpXS5uZXdfc3ltYm9s ID0gMTsKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHLCBYU1BMSUNFICIlczogbmV3 IHN5bWJvbCAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgc3ltdGFiW2ld Lm5hbWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAg LyogbmV3X3N5bWJvbCBpcyBub3Qgc2V0LiAqLworICAgICAgICAgICAgZHByaW50ayhYRU5MT0df REVCVUcsIFhTUExJQ0UgIiVzOiBvdmVycmlkaW5nIHN5bWJvbCAlc1xuIiwKKyAgICAgICAgICAg ICAgICAgICAgZWxmLT5uYW1lLCBzeW10YWJbaV0ubmFtZSk7CisgICAgICAgIH0KKyAgICB9CisK KyAgICBwYXlsb2FkLT5zeW10YWIgPSBzeW10YWI7CisgICAgcGF5bG9hZC0+c3RydGFiID0gc3Ry dGFiOworICAgIHBheWxvYWQtPm5zeW1zID0gbnN5bXM7CisKKyAgICByZXR1cm4gMDsKK30KKwog LyogV2UgTVVTVCBiZSBob2xkaW5nIHRoZSBwYXlsb2FkX2xvY2sgc3BpbmxvY2suICovCiBzdGF0 aWMgdm9pZCBmcmVlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKmRhdGEpCiB7CkBAIC0zODksNiAr NTMzLDggQEAgc3RhdGljIHZvaWQgZnJlZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpkYXRhKQog ICAgIHBheWxvYWRfY250LS07CiAgICAgcGF5bG9hZF92ZXJzaW9uKys7CiAgICAgZnJlZV9wYXls b2FkX2RhdGEoZGF0YSk7CisgICAgeGZyZWUoZGF0YS0+c3ltdGFiKTsKKyAgICB4ZnJlZShkYXRh LT5zdHJ0YWIpOwogICAgIHhmcmVlKGRhdGEpOwogfQogCkBAIC00MjEsNiArNTY3LDEwIEBAIHN0 YXRpYyBpbnQgbG9hZF9wYXlsb2FkX2RhdGEoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsIHZvaWQg KnJhdywgc2l6ZV90IGxlbikKICAgICBpZiAoIHJjICkKICAgICAgICAgZ290byBvdXQ7CiAKKyAg ICByYyA9IGJ1aWxkX3N5bWJvbF90YWJsZShwYXlsb2FkLCAmZWxmKTsKKyAgICBpZiAoIHJjICkK KyAgICAgICAgZ290byBvdXQ7CisKICAgICByYyA9IHNlY3VyZV9wYXlsb2FkKHBheWxvYWQsICZl bGYpOwogCiAgb3V0OgpAQCAtNDkzLDggKzY0MywxMiBAQCBzdGF0aWMgaW50IHhzcGxpY2VfdXBs b2FkKHhlbl9zeXNjdGxfeHNwbGljZV91cGxvYWRfdCAqdXBsb2FkKQogCiAgICAgdmZyZWUocmF3 X2RhdGEpOwogCi0gICAgaWYgKCByYyApCisgICAgaWYgKCByYyAmJiBkYXRhICkKKyAgICB7Cisg ICAgICAgIHhmcmVlKGRhdGEtPnN5bXRhYik7CisgICAgICAgIHhmcmVlKGRhdGEtPnN0cnRhYik7 CiAgICAgICAgIHhmcmVlKGRhdGEpOworICAgIH0KIAogICAgIHJldHVybiByYzsKIH0KZGlmZiAt LWdpdCBhL3hlbi9jb21tb24veHNwbGljZV9lbGYuYyBiL3hlbi9jb21tb24veHNwbGljZV9lbGYu YwppbmRleCA1OTMyM2I4Yy4uZDA4YzY4NyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi94c3BsaWNl X2VsZi5jCisrKyBiL3hlbi9jb21tb24veHNwbGljZV9lbGYuYwpAQCAtNCw2ICs0LDcgQEAKIAog I2luY2x1ZGUgPHhlbi9lcnJuby5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNsdWRlIDx4 ZW4vc3ltYm9scy5oPgogI2luY2x1ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgogI2luY2x1ZGUgPHhl bi94c3BsaWNlLmg+CiAKQEAgLTI3NCw5ICsyNzUsMjIgQEAgaW50IHhzcGxpY2VfZWxmX3Jlc29s dmVfc3ltYm9scyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAgICAgICAgIGJyZWFrOwog CiAgICAgICAgIGNhc2UgU0hOX1VOREVGOgotICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIg WFNQTElDRSAiJXM6IFVua25vd24gc3ltYm9sOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICBl bGYtPm5hbWUsIGVsZi0+c3ltW2ldLm5hbWUpOwotICAgICAgICAgICAgcmMgPSAtRU5PRU5UOwor ICAgICAgICAgICAgZWxmLT5zeW1baV0uc3ltLT5zdF92YWx1ZSA9IHN5bWJvbHNfbG9va3VwX2J5 X25hbWUoZWxmLT5zeW1baV0ubmFtZSk7CisgICAgICAgICAgICBpZiAoICFlbGYtPnN5bVtpXS5z eW0tPnN0X3ZhbHVlICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlbGYtPnN5bVtp XS5zeW0tPnN0X3ZhbHVlID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHhzcGxpY2Vfc3ltYm9s c19sb29rdXBfYnlfbmFtZShlbGYtPnN5bVtpXS5uYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAo ICFlbGYtPnN5bVtpXS5zeW0tPnN0X3ZhbHVlICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSIFhTUExJQ0UgIiVzOiBVbmtub3duIHN5bWJv bDogJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGVsZi0+c3lt W2ldLm5hbWUpOworICAgICAgICAgICAgICAgICAgICByYyA9IC1FTk9FTlQ7CisgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHLCBYU1BMSUNFICIlczogVW5kZWZpbmVkIHN5bWJv bCByZXNvbHZlZDogJXMgPT4gJSMiUFJJeDY0IlxuIiwKKyAgICAgICAgICAgICAgICAgICAgZWxm LT5uYW1lLCBlbGYtPnN5bVtpXS5uYW1lLAorICAgICAgICAgICAgICAgICAgICAodWludDY0X3Qp ZWxmLT5zeW1baV0uc3ltLT5zdF92YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAg ICBjYXNlIFNITl9BQlM6CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oIGIv eGVuL2luY2x1ZGUveGVuL3N5bWJvbHMuaAppbmRleCBmNThlNjExLi5kOWJkMzVmIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9zeW1i b2xzLmgKQEAgLTIzLDQgKzIzLDYgQEAgY29uc3QgY2hhciAqc3ltYm9sc19sb29rdXAodW5zaWdu ZWQgbG9uZyBhZGRyLAogaW50IHhlbnN5bXNfcmVhZCh1aW50MzJfdCAqc3ltbnVtLCBjaGFyICp0 eXBlLAogICAgICAgICAgICAgICAgICB1aW50NjRfdCAqYWRkcmVzcywgY2hhciAqbmFtZSk7CiAK K3Vuc2lnbmVkIGxvbmcgc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25zdCBjaGFyICpzeW1uYW1l KTsKKwogI2VuZGlmIC8qX1hFTl9TWU1CT0xTX0gqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv eGVuL3hzcGxpY2UuaCBiL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNlLmgKaW5kZXggNzFkNzkzOS4u ODZkMjcyZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaAorKysgYi94ZW4v aW5jbHVkZS94ZW4veHNwbGljZS5oCkBAIC00MCw4ICs0MCwxNiBAQCBzdHJ1Y3QgeHNwbGljZV9w YXRjaF9mdW5jX2ludGVybmFsIHsKIC8qIENvbnZlbmllbmNlIGRlZmluZSBmb3IgcHJpbnRrLiAq LwogI2RlZmluZSBYU1BMSUNFICJ4c3BsaWNlOiAiCiAKK3N0cnVjdCB4c3BsaWNlX3N5bWJvbCB7 CisgICAgY29uc3QgY2hhciAqbmFtZTsKKyAgICB1aW50NjRfdCB2YWx1ZTsKKyAgICBzaXplX3Qg c2l6ZTsKKyAgICBib29sX3QgbmV3X3N5bWJvbDsKK307CisKIGludCB4c3BsaWNlX29wKHN0cnVj dCB4ZW5fc3lzY3RsX3hzcGxpY2Vfb3AgKik7CiB2b2lkIGNoZWNrX2Zvcl94c3BsaWNlX3dvcmso dm9pZCk7Cit1bnNpZ25lZCBsb25nIHhzcGxpY2Vfc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25z dCBjaGFyICpzeW1uYW1lKTsKIAogLyogQXJjaCBob29rcy4gKi8KIGludCBhcmNoX3hzcGxpY2Vf dmVyaWZ5X2VsZihjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZik7Ci0tIAoyLjUuMAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==