From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5223588603631086452==" MIME-Version: 1.0 From: Mark Wielaard To: elfutils-devel@lists.fedorahosted.org Subject: Re: [PATCH] unstrip: Add --force to force combining files when ELF headers don't match. Date: Tue, 27 May 2014 22:05:01 +0200 Message-ID: <1401221101.4106.75.camel@bordewijk.wildebeest.org> In-Reply-To: 1401135308-7570-1-git-send-email-mjw@redhat.com --===============5223588603631086452== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Mon, 2014-05-26 at 22:15 +0200, Mark Wielaard wrote: > @@ -1956,12 +1974,23 @@ handle_explicit_files (const char *output_file, b= ool cre > [...] > + if (stripped_ehdr.e_phnum !=3D unstripped_ehdr.e_phnum) > + { > + /* Don't even try, not even with --force. */ > + error (EXIT_FAILURE, 0, > + "'%s' and '%s' program header numbers (e_phnum) different.", > + stripped_file, unstripped_file); > + } Some testing revealed that although this restriction was also in the original code, it is too strict. prelink can increase the phnum of the stripped file. And we handle the prelink file later on (and reuse the phdr of the stripped file). We might warn that the debug data not adjusted for prelinking bias, but do then offer the user a solution (prelink -u). So change this check to stripped_ehdr.e_phnum < unstripped_ehdr.e_phnum (I haven't seen any files that fail this test). And also allow the user to live dangerously and just override it, if the really know what they are doing. That is what --force is for anyway. And we then do check the sections match up, so we'll still catch if the files really don't fit together. Updated patch attached. --===============5223588603631086452== Content-Type: text/x-patch MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="unstrip.patch" Y29tbWl0IDIyNDk3MDk2ZTg3NTliN2M3MzIzM2YyYzJmOWFkZmY5ZDJkYjljZTcKQXV0aG9yOiBN YXJrIFdpZWxhYXJkIDxtandAcmVkaGF0LmNvbT4KRGF0ZTogICBNb24gTWF5IDI2IDIxOjI4OjA1 IDIwMTQgKzAyMDAKCiAgICB1bnN0cmlwOiBBZGQgLS1mb3JjZSB0byBmb3JjZSBjb21iaW5pbmcg ZmlsZXMgd2hlbiBFTEYgaGVhZGVycyBkb24ndCBtYXRjaC4KICAgIAogICAgT2xkZXIgdmVyc2lv bnMgb2YgR05VIGJpbnV0aWxzIHN0cmlwIHdvdWxkIGRyb3Agc29tZSBFTEYgaGVhZGVyIGZsYWdz LgogICAgQ2F1c2luZyB0aGUgbWFpbiBFTEYgZmlsZSBhbmQgdGhlIHNlcGFyYXRlIC5kZWJ1ZyBm aWxlIHRvIGhhdmUgbWlzbWF0Y2hlZAogICAgRUxGIGhlYWRlciBmaWVsZHMuIFVuZm9ydHVuYXRl bHkgc29tZSBkaXN0cm9zIGFyZSBzdGlsbCBzaGlwcGluZyBzdWNoIGZpbGVzLgogICAgZXUtdW5z dHJpcCBkb2Vzbid0IHdhbnQgdG8gcmVjb21iaW5lIHN1Y2ggZmlsZXMuIEFkZCBhIG1vcmUgZXhw bGljaXQKICAgIGV4cGxhbmF0aW9uIHdoaWNoIGZpZWxkcyBkb24ndCBtYXRjaCBhbmQgcHJvdmlk ZSBhIC0tZm9yY2UsIC1GIGZsYWcgdG8KICAgIGZvcmNlIGNvbWJpbmluZyBzdWNoIGZpbGVzIGFu eXdheSAocHJvZHVjaW5nIGEgd2FybmluZykuCiAgICAKICAgIGh0dHBzOi8vYnVnemlsbGEucmVk aGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9Njk4MDA1CiAgICBodHRwczovL2J1Z3ppbGxhLnJlZGhh dC5jb20vc2hvd19idWcuY2dpP2lkPTgwNjQ3NAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJr IFdpZWxhYXJkIDxtandAcmVkaGF0LmNvbT4KCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFu Z2VMb2cKaW5kZXggODRkZDE5My4uYjA1ZjViYyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcgQEAKKzIwMTQtMDUtMjYgIE1hcmsgV2llbGFhcmQgIDxt andAcmVkaGF0LmNvbT4KKworCSogTkVXUzogTmV3IHNlY3Rpb24gMC4xNjAuIEFkZCB1bnN0cmlw IC0tZm9yY2UuCisKIDIwMTQtMDUtMTcgIE1hcmsgV2llbGFhcmQgIDxtandAcmVkaGF0LmNvbT4K IAogCSogY29uZmlndXJlLmFjOiBTZXQgdmVyc2lvbiB0byAwLjE1OS4KZGlmZiAtLWdpdCBhL05F V1MgYi9ORVdTCmluZGV4IDhhYzQ2MzEuLjQwNTAyMDAgMTAwNjQ0Ci0tLSBhL05FV1MKKysrIGIv TkVXUwpAQCAtMSwzICsxLDggQEAKK1ZlcnNpb24gMC4xNjAKKwordW5zdHJpcDogTmV3IG9wdGlv biAtRiwgLS1mb3JjZSB0byBjb21iaW5pbmcgZmlsZXMgZXZlbiBpZiBzb21lIEVMRiBoZWFkZXJz CisgICAgICAgICBkb24ndCBzZWVtIHRvIG1hdGNoLgorCiBWZXJzaW9uIDAuMTU5CiAKIHN0YWNr OiBOZXcgb3B0aW9uIC1kLCAtLWRlYnVnbmFtZSB0byBsb29rdXAgRFdBUkYgZGVidWdpbmZvIG5h bWUgZm9yIGZyYW1lLgpkaWZmIC0tZ2l0IGEvc3JjL0NoYW5nZUxvZyBiL3NyYy9DaGFuZ2VMb2cK aW5kZXggNDE5N2NjZC4uNDA2NzU4MyAxMDA2NDQKLS0tIGEvc3JjL0NoYW5nZUxvZworKysgYi9z cmMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDUtMjYgIE1hcmsgV2llbGFhcmQg IDxtandAcmVkaGF0LmNvbT4KKworCSogdW5zdHJpcC5jIChvcHRpb25zKTogQWRkIC0tZm9yY2Us IC1GLgorCShzdHJ1Y3QgYXJnX2luZm8pOiBBZGQgYm9vbCBmb3JjZS4KKwkocGFyc2Vfb3B0KTog SGFuZGxlICdGJywgc2V0IGZvcmNlLgorCShoYW5kbGVfZXhwbGljaXRfZmlsZXMpOiBBZGQgZm9y Y2UgYXJndW1lbnQsIGFkZCB3YXJuIGZ1bmN0aW9uLAorCXNlcGFyYXRlIGNoZWNrIGVoZHIgZmll bGQgY2hlY2tzLCB1c2Ugd2Fybi4KKwkoaGFuZGxlX2R3ZmxfbW9kdWxlKTogQWRkIGZvcmNlIGFy Z3VtZW50LCBwYXNzIG9uIHRvCisJaGFuZGxlX2V4cGxpY2l0X2ZpbGVzLgorCShoYW5kbGVfb3V0 cHV0X2Rpcl9tb2R1bGUpOiBBZGQgZm9yY2UgYXJndW1lbnQsIHBhc3Mgb24gdG8KKwloYW5kbGVf ZHdmbF9tb2R1bGUuCisJKGhhbmRsZV9pbXBsaWNpdF9tb2R1bGVzKTogUGFzcyBpbmZvLT5mb3Jj ZSB0byBoYW5kbGVfZHdmbF9tb2R1bGUgYW5kCisJaGFuZGxlX291dHB1dF9kaXJfbW9kdWxlLgor CShtYWluKTogUGFzcyBpbmZvLmZvcmNlIHRvIGhhbmRsZV9leHBsaWNpdF9maWxlcy4KKwogMjAx NC0wNS0xOSAgTWFyayBXaWVsYWFyZCAgPG1qd0ByZWRoYXQuY29tPgogCiAJKiBlbGZsaW50LmMg KGNoZWNrX3JlbG9jX3NoZHIpOiBDaGVjayBlYmxfY2hlY2tfcmVsb2NfdGFyZ2V0X3R5cGUuCmRp ZmYgLS1naXQgYS9zcmMvdW5zdHJpcC5jIGIvc3JjL3Vuc3RyaXAuYwppbmRleCBmNjY2MGEzLi42 NWJiMjUxIDEwMDY0NAotLS0gYS9zcmMvdW5zdHJpcC5jCisrKyBiL3NyYy91bnN0cmlwLmMKQEAg LTEsNSArMSw1IEBACiAvKiBDb21iaW5lIHN0cmlwcGVkIGZpbGVzIHdpdGggc2VwYXJhdGUgc3lt Ym9scyBhbmQgZGVidWcgaW5mb3JtYXRpb24uCi0gICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMiBS ZWQgSGF0LCBJbmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMiwgMjAxNCBSZWQgSGF0LCBJ bmMuCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBlbGZ1dGlscy4KICAgIFdyaXR0ZW4gYnkgUm9s YW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiwgMjAwNy4KIApAQCAtODIsNiArODIsOSBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGFyZ3Bfb3B0aW9uIG9wdGlvbnNbXSA9CiAgICAgTl8oIkFw cGx5IHJlbG9jYXRpb25zIHRvIHNlY3Rpb24gY29udGVudHMgaW4gRVRfUkVMIGZpbGVzIiksIDAg fSwKICAgeyAibGlzdC1vbmx5IiwgJ24nLCBOVUxMLCAwLAogICAgIE5fKCJPbmx5IGxpc3QgbW9k dWxlIGFuZCBmaWxlIG5hbWVzLCBidWlsZCBJRHMiKSwgMCB9LAorIHsgImZvcmNlIiwgJ0YnLCBO VUxMLCAwLAorICAgIE5fKCJGb3JjZSBjb21iaW5pbmcgZmlsZXMgZXZlbiBpZiBzb21lIEVMRiBo ZWFkZXJzIGRvbid0IHNlZW0gdG8gbWF0Y2giKSwKKyAgIDAgfSwKICAgeyBOVUxMLCAwLCBOVUxM LCAwLCBOVUxMLCAwIH0KIH07CiAKQEAgLTk3LDYgKzEwMCw3IEBAIHN0cnVjdCBhcmdfaW5mbwog ICBib29sIG1vZG5hbWVzOwogICBib29sIG1hdGNoX2ZpbGVzOwogICBib29sIHJlbG9jYXRlOwor ICBib29sIGZvcmNlOwogfTsKIAogLyogSGFuZGxlIHByb2dyYW0gYXJndW1lbnRzLiAgKi8KQEAg LTE0Nyw2ICsxNTEsOSBAQCBwYXJzZV9vcHQgKGludCBrZXksIGNoYXIgKmFyZywgc3RydWN0IGFy Z3Bfc3RhdGUgKnN0YXRlKQogICAgIGNhc2UgJ1InOgogICAgICAgaW5mby0+cmVsb2NhdGUgPSB0 cnVlOwogICAgICAgYnJlYWs7CisgICAgY2FzZSAnRic6CisgICAgICBpbmZvLT5mb3JjZSA9IHRy dWU7CisgICAgICBicmVhazsKIAogICAgIGNhc2UgQVJHUF9LRVlfQVJHUzoKICAgICBjYXNlIEFS R1BfS0VZX05PX0FSR1M6CkBAIC0xOTM1LDkgKzE5NDIsMjAgQEAgb3Blbl9maWxlIChjb25zdCBj aGFyICpmaWxlLCBib29sIHdyaXRhYmxlKQogCiAvKiBIYW5kbGUgYSBwYWlyIG9mIGZpbGVzIHdl IG5lZWQgdG8gb3BlbiBieSBuYW1lLiAgKi8KIHN0YXRpYyB2b2lkCi1oYW5kbGVfZXhwbGljaXRf ZmlsZXMgKGNvbnN0IGNoYXIgKm91dHB1dF9maWxlLCBib29sIGNyZWF0ZV9kaXJzLAoraGFuZGxl X2V4cGxpY2l0X2ZpbGVzIChjb25zdCBjaGFyICpvdXRwdXRfZmlsZSwgYm9vbCBjcmVhdGVfZGly cywgYm9vbCBmb3JjZSwKIAkJICAgICAgIGNvbnN0IGNoYXIgKnN0cmlwcGVkX2ZpbGUsIGNvbnN0 IGNoYXIgKnVuc3RyaXBwZWRfZmlsZSkKIHsKKworICAvKiBXYXJuLCBhbmQgZXhpdCBpZiBub3Qg Zm9yY2VkIHRvIGNvbnRpbnVlLCBpZiBzb21lIEVMRiBoZWFkZXIKKyAgICAgc2FuaXR5IGNoZWNr IGZvciB0aGUgc3RyaXBwZWQgYW5kIHVuc3RyaXBwZWQgZmlsZXMgZmFpbGVkLiAgKi8KKyAgdm9p ZCB3YXJuIChjb25zdCBjaGFyICptc2cpCisgIHsKKyAgICBlcnJvciAoZm9yY2UgPyAwIDogRVhJ VF9GQUlMVVJFLCAwLCAiJXMnJXMnIGFuZCAnJXMnICVzJXMuIiwKKwkgICBmb3JjZSA/IF8oIldB Uk5JTkc6ICIpIDogIiIsCisJICAgc3RyaXBwZWRfZmlsZSwgdW5zdHJpcHBlZF9maWxlLCBtc2cs CisJICAgZm9yY2UgPyAiIiA6IF8oIiwgdXNlIC0tZm9yY2UiKSk7CisgIH0KKwogICBpbnQgc3Ry aXBwZWRfZmQgPSBvcGVuX2ZpbGUgKHN0cmlwcGVkX2ZpbGUsIGZhbHNlKTsKICAgRWxmICpzdHJp cHBlZCA9IGVsZl9iZWdpbiAoc3RyaXBwZWRfZmQsIEVMRl9DX1JFQUQsIE5VTEwpOwogICBHRWxm X0VoZHIgc3RyaXBwZWRfZWhkcjsKQEAgLTE5NTYsMTIgKzE5NzQsMTggQEAgaGFuZGxlX2V4cGxp Y2l0X2ZpbGVzIChjb25zdCBjaGFyICpvdXRwdXRfZmlsZSwgYm9vbCBjcmVhdGVfZGlycywKICAg ICAgIEVMRl9DSEVDSyAoZ2VsZl9nZXRlaGRyICh1bnN0cmlwcGVkLCAmdW5zdHJpcHBlZF9laGRy KSwKIAkJIF8oImNhbm5vdCBjcmVhdGUgRUxGIGRlc2NyaXB0b3I6ICVzIikpOwogCi0gICAgICBp ZiAobWVtY21wIChzdHJpcHBlZF9laGRyLmVfaWRlbnQsIHVuc3RyaXBwZWRfZWhkci5lX2lkZW50 LCBFSV9OSURFTlQpCi0JICB8fCBzdHJpcHBlZF9laGRyLmVfdHlwZSAhPSB1bnN0cmlwcGVkX2Vo ZHIuZV90eXBlCi0JICB8fCBzdHJpcHBlZF9laGRyLmVfbWFjaGluZSAhPSB1bnN0cmlwcGVkX2Vo ZHIuZV9tYWNoaW5lCi0JICB8fCBzdHJpcHBlZF9laGRyLmVfcGhudW0gIT0gdW5zdHJpcHBlZF9l aGRyLmVfcGhudW0pCi0JZXJyb3IgKEVYSVRfRkFJTFVSRSwgMCwgXygiJyVzJyBhbmQgJyVzJyBk byBub3Qgc2VlbSB0byBtYXRjaCIpLAotCSAgICAgICBzdHJpcHBlZF9maWxlLCB1bnN0cmlwcGVk X2ZpbGUpOworICAgICAgaWYgKG1lbWNtcCAoc3RyaXBwZWRfZWhkci5lX2lkZW50LAorCQkgIHVu c3RyaXBwZWRfZWhkci5lX2lkZW50LCBFSV9OSURFTlQpICE9IDApCisJd2FybiAoXygiRUxGIGhl YWRlciBpZGVudGlmaWNhdGlvbiAoZV9pZGVudCkgZGlmZmVyZW50IikpOworCisgICAgICBpZiAo c3RyaXBwZWRfZWhkci5lX3R5cGUgIT0gdW5zdHJpcHBlZF9laGRyLmVfdHlwZSkKKwl3YXJuIChf KCJFTEYgaGVhZGVyIHR5cGUgKGVfdHlwZSkgZGlmZmVyZW50IikpOworCisgICAgICBpZiAoc3Ry aXBwZWRfZWhkci5lX21hY2hpbmUgIT0gdW5zdHJpcHBlZF9laGRyLmVfbWFjaGluZSkKKwl3YXJu IChfKCJFTEYgaGVhZGVyIG1hY2hpbmUgdHlwZSAoZV9tYWNoaW5lKSBkaWZmZXJlbnQiKSk7CisK KyAgICAgIGlmIChzdHJpcHBlZF9laGRyLmVfcGhudW0gPCB1bnN0cmlwcGVkX2VoZHIuZV9waG51 bSkKKwl3YXJuIChfKCJzdHJpcHBlZCBwcm9ncmFtIGhlYWRlciAoZV9waG51bSkgc21hbGxlciB0 aGFuIHVuc3RyaXBwZWQiKSk7CiAgICAgfQogCiAgIGhhbmRsZV9maWxlIChvdXRwdXRfZmlsZSwg Y3JlYXRlX2RpcnMsIHN0cmlwcGVkLCAmc3RyaXBwZWRfZWhkciwgdW5zdHJpcHBlZCk7CkBAIC0x OTc2LDcgKzIwMDAsNyBAQCBoYW5kbGVfZXhwbGljaXRfZmlsZXMgKGNvbnN0IGNoYXIgKm91dHB1 dF9maWxlLCBib29sIGNyZWF0ZV9kaXJzLAogCiAvKiBIYW5kbGUgYSBwYWlyIG9mIGZpbGVzIG9w ZW5lZCBpbXBsaWNpdGx5IGJ5IGxpYmR3ZmwgZm9yIG9uZSBtb2R1bGUuICAqLwogc3RhdGljIHZv aWQKLWhhbmRsZV9kd2ZsX21vZHVsZSAoY29uc3QgY2hhciAqb3V0cHV0X2ZpbGUsIGJvb2wgY3Jl YXRlX2RpcnMsCitoYW5kbGVfZHdmbF9tb2R1bGUgKGNvbnN0IGNoYXIgKm91dHB1dF9maWxlLCBi b29sIGNyZWF0ZV9kaXJzLCBib29sIGZvcmNlLAogCQkgICAgRHdmbF9Nb2R1bGUgKm1vZCwgYm9v bCBhbGwsIGJvb2wgaWdub3JlLCBib29sIHJlbG9jYXRlKQogewogICBHRWxmX0FkZHIgYmlhczsK QEAgLTIwNDgsNyArMjA3Miw3IEBAIGhhbmRsZV9kd2ZsX21vZHVsZSAoY29uc3QgY2hhciAqb3V0 cHV0X2ZpbGUsIGJvb2wgY3JlYXRlX2RpcnMsCiAJICAodm9pZCkgZHdmbF9tb2R1bGVfaW5mbyAo bW9kLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLAogCQkJCSAgICZzdHJpcHBlZF9maWxl LCAmdW5zdHJpcHBlZF9maWxlKTsKIAotCSAgaGFuZGxlX2V4cGxpY2l0X2ZpbGVzIChvdXRwdXRf ZmlsZSwgY3JlYXRlX2RpcnMsCisJICBoYW5kbGVfZXhwbGljaXRfZmlsZXMgKG91dHB1dF9maWxl LCBjcmVhdGVfZGlycywgZm9yY2UsCiAJCQkJIHN0cmlwcGVkX2ZpbGUsIHVuc3RyaXBwZWRfZmls ZSk7CiAJICByZXR1cm47CiAJfQpAQCAtMjA2OCw3ICsyMDkyLDcgQEAgaGFuZGxlX2R3ZmxfbW9k dWxlIChjb25zdCBjaGFyICpvdXRwdXRfZmlsZSwgYm9vbCBjcmVhdGVfZGlycywKIAogLyogSGFu ZGxlIG9uZSBtb2R1bGUgYmVpbmcgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeS4gICov CiBzdGF0aWMgdm9pZAotaGFuZGxlX291dHB1dF9kaXJfbW9kdWxlIChjb25zdCBjaGFyICpvdXRw dXRfZGlyLCBEd2ZsX01vZHVsZSAqbW9kLAoraGFuZGxlX291dHB1dF9kaXJfbW9kdWxlIChjb25z dCBjaGFyICpvdXRwdXRfZGlyLCBEd2ZsX01vZHVsZSAqbW9kLCBib29sIGZvcmNlLAogCQkJICBi b29sIGFsbCwgYm9vbCBpZ25vcmUsIGJvb2wgbW9kbmFtZXMsIGJvb2wgcmVsb2NhdGUpCiB7CiAg IGlmICghIG1vZG5hbWVzKQpAQCAtMjA4OSw3ICsyMTEzLDcgQEAgaGFuZGxlX291dHB1dF9kaXJf bW9kdWxlIChjb25zdCBjaGFyICpvdXRwdXRfZGlyLCBEd2ZsX01vZHVsZSAqbW9kLAogICBpZiAo YXNwcmludGYgKCZvdXRwdXRfZmlsZSwgIiVzLyVzIiwgb3V0cHV0X2RpciwgbW9kbmFtZXMgPyBu YW1lIDogZmlsZSkgPCAwKQogICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIDAsIF8oIm1lbW9yeSBl eGhhdXN0ZWQiKSk7CiAKLSAgaGFuZGxlX2R3ZmxfbW9kdWxlIChvdXRwdXRfZmlsZSwgdHJ1ZSwg bW9kLCBhbGwsIGlnbm9yZSwgcmVsb2NhdGUpOworICBoYW5kbGVfZHdmbF9tb2R1bGUgKG91dHB1 dF9maWxlLCB0cnVlLCBmb3JjZSwgbW9kLCBhbGwsIGlnbm9yZSwgcmVsb2NhdGUpOwogfQogCiAK QEAgLTIyMDEsMTIgKzIyMjUsMTIgQEAgaGFuZGxlX2ltcGxpY2l0X21vZHVsZXMgKGNvbnN0IHN0 cnVjdCBhcmdfaW5mbyAqaW5mbykKICAgICB7CiAgICAgICBpZiAobmV4dCAob2Zmc2V0KSAhPSAw KQogCWVycm9yIChFWElUX0ZBSUxVUkUsIDAsIF8oIm1hdGNoZWQgbW9yZSB0aGFuIG9uZSBtb2R1 bGUiKSk7Ci0gICAgICBoYW5kbGVfZHdmbF9tb2R1bGUgKGluZm8tPm91dHB1dF9maWxlLCBmYWxz ZSwgbW1pLmZvdW5kLAorICAgICAgaGFuZGxlX2R3ZmxfbW9kdWxlIChpbmZvLT5vdXRwdXRfZmls ZSwgZmFsc2UsIGluZm8tPmZvcmNlLCBtbWkuZm91bmQsCiAJCQkgIGluZm8tPmFsbCwgaW5mby0+ aWdub3JlLCBpbmZvLT5yZWxvY2F0ZSk7CiAgICAgfQogICBlbHNlCiAgICAgZG8KLSAgICAgIGhh bmRsZV9vdXRwdXRfZGlyX21vZHVsZSAoaW5mby0+b3V0cHV0X2RpciwgbW1pLmZvdW5kLAorICAg ICAgaGFuZGxlX291dHB1dF9kaXJfbW9kdWxlIChpbmZvLT5vdXRwdXRfZGlyLCBtbWkuZm91bmQs IGluZm8tPmZvcmNlLAogCQkJCWluZm8tPmFsbCwgaW5mby0+aWdub3JlLAogCQkJCWluZm8tPm1v ZG5hbWVzLCBpbmZvLT5yZWxvY2F0ZSk7CiAgICAgd2hpbGUgKChvZmZzZXQgPSBuZXh0IChvZmZz ZXQpKSA+IDApOwpAQCAtMjI5NiwxMSArMjMyMCwxMiBAQCBvciAtIGlmIG5vIGRlYnVnaW5mbyB3 YXMgZm91bmQsIG9yIC4gaWYgRklMRSBjb250YWlucyB0aGUgZGVidWcgaW5mb3JtYXRpb24uXAog CSAgY2hhciAqZmlsZTsKIAkgIGlmIChhc3ByaW50ZiAoJmZpbGUsICIlcy8lcyIsIGluZm8ub3V0 cHV0X2RpciwgaW5mby5hcmdzWzBdKSA8IDApCiAJICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIDAs IF8oIm1lbW9yeSBleGhhdXN0ZWQiKSk7Ci0JICBoYW5kbGVfZXhwbGljaXRfZmlsZXMgKGZpbGUs IHRydWUsIGluZm8uYXJnc1swXSwgaW5mby5hcmdzWzFdKTsKKwkgIGhhbmRsZV9leHBsaWNpdF9m aWxlcyAoZmlsZSwgdHJ1ZSwgaW5mby5mb3JjZSwKKwkJCQkgaW5mby5hcmdzWzBdLCBpbmZvLmFy Z3NbMV0pOwogCSAgZnJlZSAoZmlsZSk7CiAJfQogICAgICAgZWxzZQotCWhhbmRsZV9leHBsaWNp dF9maWxlcyAoaW5mby5vdXRwdXRfZmlsZSwgZmFsc2UsCisJaGFuZGxlX2V4cGxpY2l0X2ZpbGVz IChpbmZvLm91dHB1dF9maWxlLCBmYWxzZSwgaW5mby5mb3JjZSwKIAkJCSAgICAgICBpbmZvLmFy Z3NbMF0sIGluZm8uYXJnc1sxXSk7CiAgICAgfQogICBlbHNlCg== --===============5223588603631086452==--