From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v2 3/5] xen/livepatch/ARM32: Don't load and crash on livepatches loaded with wrong alignment. Date: Wed, 26 Jul 2017 15:47:54 -0400 Message-ID: <20170726194756.20265-4-konrad@kernel.org> References: <20170726194756.20265-1-konrad@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1daSIZ-0008Uj-1m for xen-devel@lists.xenproject.org; Wed, 26 Jul 2017 19:48:47 +0000 Received: by mail-qt0-f195.google.com with SMTP id p3so8081417qtg.5 for ; Wed, 26 Jul 2017 12:48:45 -0700 (PDT) In-Reply-To: <20170726194756.20265-1-konrad@kernel.org> 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, julien.grall@arm.com, sstabellini@kernel.org, andrew.cooper3@citrix.com Cc: Konrad Rzeszutek Wilk , jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org VGhpcyBpc3N1ZSB3YXMgb2JzZXJ2ZWQgb24gQVJNMzIgd2l0aCBhIGNyb3NzIGNvbXBpbGVyIGZv ciB0aGUKbGl2ZXBhdGNoZXMuIE1haW5seSB0aGUgbGl2ZXBhdGNoZXMgLmRhdGEgc2VjdGlvbiBz aXplIHdhcyBub3QKcGFkZGVkIHRvIHRoZSBzZWN0aW9uIGFsaWdubWVudDoKCkFSTTMyIG5hdGl2 ZToKQ29udGVudHMgb2Ygc2VjdGlvbiAucm9kYXRhOgogMDAwMCA2ODY5NWY2NiA3NTZlNjMwMCA2 MzY4NjU2MyA2YjVmNjY2ZSAgaGlfZnVuYy5jaGVja19mbgogMDAxMCA2MzAwMDAwMCA3ODY1NmU1 ZiA2NTc4NzQ3MiA2MTVmNzY2NSAgYy4uLnhlbl9leHRyYV92ZQogMDAyMCA3MjczNjk2ZiA2ZTAw MDAwMCAgICAgICAgICAgICAgICAgICAgcnNpb24uLi4KCkFSTTMyIGNyb3NzIGNvbXBpbGVyOgpD b250ZW50cyBvZiBzZWN0aW9uIC5yb2RhdGE6CiAwMDAwIDY4Njk1ZjY2IDc1NmU2MzAwIDYzNjg2 NTYzIDZiNWY2NjZlICBoaV9mdW5jLmNoZWNrX2ZuCiAwMDEwIDYzMDAwMDAwIDc4NjU2ZTVmIDY1 Nzg3NDcyIDYxNWY3NjY1ICBjLi4ueGVuX2V4dHJhX3ZlCiAwMDIwIDcyNzM2OTZmIDZlMDAgICAg ICAgICAgICAgICAgICAgICAgICByc2lvbi4KCkFuZCB3aGVuIHdlIGxvYWRlZCBpdCB0aGUgbmV4 dCBzZWN0aW9uIHdvdWxkIGJlIHB1dCByaWdodCBiZWhpbmQgaXQ6CgpuYXRpdmU6CgooWEVOKSBs aXZlcGF0Y2guYzo0MTM6IGxpdmVwYXRjaDogeGVuX2hlbGxvX3dvcmxkOiBMb2FkZWQgLnRleHQg YXQgMDBhMDIwMDAKKFhFTikgbGl2ZXBhdGNoLmM6NDEzOiBsaXZlcGF0Y2g6IHhlbl9oZWxsb193 b3JsZDogTG9hZGVkIC5yb2RhdGEgYXQgMDBhMDQwMjQKKFhFTikgbGl2ZXBhdGNoLmM6NDEzOiBs aXZlcGF0Y2g6IHhlbl9oZWxsb193b3JsZDogTG9hZGVkIC5hbHRpbnN0cnVjdGlvbnMgYXQgMDBh MDQwNGMKCmNyb3NzIGNvbXBpbGVyOgooWEVOKSBsaXZlcGF0Y2guYzo0MTM6IGxpdmVwYXRjaDog eGVuX2hlbGxvX3dvcmxkOiBMb2FkZWQgLnRleHQgYXQgMDBhMDIwMDAKKFhFTikgbGl2ZXBhdGNo LmM6NDEzOiBsaXZlcGF0Y2g6IHhlbl9oZWxsb193b3JsZDogTG9hZGVkIC5yb2RhdGEgYXQgMDBh MDQwMjQKKFhFTikgbGl2ZXBhdGNoLmM6NDEzOiBsaXZlcGF0Y2g6IHhlbl9oZWxsb193b3JsZDog TG9hZGVkIC5hbHRpbnN0cnVjdGlvbnMgYXQgMDBhMDQwNGEKCihTZWUgNGEgdnMgNGMpCgpuYXRp dmUgcmVhZGVsZjoKICBbIDRdIC5yb2RhdGEgICAgICAgICAgIFBST0dCSVRTICAgICAgICAwMDAw MDAwMCAwMDAxNjQgMDAwMDI4IDAwICAgQSAgMCAgIDAgIDQKICBbIDVdIC5hbHRpbnN0cnVjdGlv bnMgIFBST0dCSVRTICAgICAgICAwMDAwMDAwMCAwMDAxOGMgMDAwMDBjIDAwICAgQSAgMCAgIDAg IDEKCmNyb3NzIGNvbXBpbGVyIHJlYWRlbGYgLS1zZWN0aW9uczoKICBbIDRdIC5yb2RhdGEgICAg ICAgICAgIFBST0dCSVRTICAgICAgICAwMDAwMDAwMCAwMDAxNjQgMDAwMDI2IDAwICAgQSAgMCAg IDAgIDQKICBbIDVdIC5hbHRpbnN0cnVjdGlvbnMgIFBST0dCSVRTICAgICAgICAwMDAwMDAwMCAw MDAxOGEgMDAwMDBjIDAwICAgQSAgMCAgIDAgIDEKCkFuZCBhcyBjYW4gYmUgc2VlbiB0aGUgLmFs dGluc3RydWN0aW9ucyBoYXZlIGFsaWdubWVudCBvZiAxIHdoaWNoIGZyb20KJ21hbiBlbGYnIGlz OiAiVmFsdWVzIG9mIHplcm8gYW5kIG9uZSBtZWFuIG5vIGFsaWdubWVudCBpcyByZXF1aXJlZC4i CndoaWNoIG1lYW5zIHdlIGNhbiBpZ25vcmUgaXQuCgpTZWUgcGF0Y2ggdGl0bGVkICJhbHRlcm5h dGl2ZS94ODYvYXJtMzI6IEFsaWduIGFsdGluc3RydWN0aW9ucwooYW5kIGFsdGluc3RyX3JlcGxh Y2VtZW50KSBzZWN0aW9ucy4iIHdoaWNoIGZpeGVzIHRoZSAuYWx0aW5zdHJ1Y3Rpb25zIHRvCmhh dmUgdGhlIHByb3BlciBhbGlnbm1lbnQuCgpJZ25vcmluZyB0aGlzIHdpbGwgcmVzdWx0IGluIGEg Y3Jhc2ggYXMgd2hlbiB3ZSBzdGFydGVkIHByb2Nlc3NpbmcKIi5yZWwuYWx0aW5zdHJ1Y3Rpb25z IiBmb3IgIi5hbHRpbnN0cnVjdGlvbnMiIHdpdGggYSBjcm9zcy1jb21waWxlZCBwYXlsb2FkCndl IHdvdWxkIGVuZCB1cCBwb2tpbmcgaW4gYW4gc2VjdGlvbiB0aGF0IHdhcyBub3QgYWxpZ25lZCBw cm9wZXJseSBpbiBtZW1vcnkKYW5kIGNyYXNoLgoKVGhpcyBhbGxvd3MgdXMgb24gQVJNMzIgdG8g ZXJyb3Igb3V0IHdpdGg6CgpsaXZlcGF0Y2g6IHhlbl9oZWxsb193b3JsZDogZGVzdD0wMGEwNDA0 YSAoLmFsdGluc3RydWN0aW9ucykgaXMgbm90IGFsaWduZWQgcHJvcGVybHkhCgpGdXJ0aGVybW9y ZSB3ZSBhbHNvIG9ic2VydmUgdGhhdCB0aGUgYWxpZ25tZW50IGlzIG5vdCBjb3JyZWN0CmZvciBv dGhlciBzZWN0aW9ucyAod2hlbiBjcm9zcyBjb21waWxpbmcpIGFzIHN1Y2ggd2UgYWRkIHRoZSBj aGVjawppbiB2YXJpb3VzIG90aGVyIHBsYWNlcyB3aGljaCBhbGxvd3MgdXMgdG8gZ2V0LgoKbGl2 ZXBhdGNoOiB4ZW5fYnllX3dvcmxkOiAubGl2ZXBhdGNoLmRlcGVuZHMgYWxpZ25tZW50IGlzIHdy b25nIQoKaW5zdGVhZCBvZiBhIGNyYXNoLgooU2VlIHBhdGNoICJ4ZW4vbGl2ZXBhdGNoL3g4Ni9h cm0zMjogRm9yY2UgbGl2ZXBhdGNoX2RlcGVuZHMgdG8gYmUgdWludDMyX3QgYWxpZ25lZCIKIHdo aWNoIGZpeGVzIHRoZSAubGl2ZXBhdGNoLmRlcGVuZHMgYWxpZ25tZW50KQoKU2lnbmVkLW9mZi1i eTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgotLS0KdjE6 IEluaXRpYWwgcGF0Y2gKdjI6IFJlZG8gdGhlIGNvbW1pdCB0byBpbmNsdWRlIHRoZSBjb21taXRz IHdoaWNoIGZpeCB0aGUgYWxpZ25tZW50IGlzc3Vlcy4KICAgIEFsc28gbWVudGlvbiB0aGUgbmVl ZCBpbiB0aGUgZG9jcwotLS0KIGRvY3MvbWlzYy9saXZlcGF0Y2gubWFya2Rvd24gICB8ICA2ICsr KysrLQogeGVuL2FyY2gvYXJtL2FybTMyL2xpdmVwYXRjaC5jIHwgMTUgKysrKysrKysrKysrKysr CiB4ZW4vYXJjaC9hcm0vYXJtNjQvbGl2ZXBhdGNoLmMgfCAgNiArKysrKysKIHhlbi9hcmNoL3g4 Ni9saXZlcGF0Y2guYyAgICAgICB8ICA2ICsrKysrKwogeGVuL2NvbW1vbi9saXZlcGF0Y2guYyAg ICAgICAgIHwgMTQgKysrKysrKysrKysrKy0KIHhlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaCAg ICB8ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duIGIvZG9jcy9taXNj L2xpdmVwYXRjaC5tYXJrZG93bgppbmRleCA1NGE2Yjg1MGNiLi5jMmM0YWNkM2QzIDEwMDY0NAot LS0gYS9kb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy9saXZlcGF0 Y2gubWFya2Rvd24KQEAgLTI3OSw2ICsyNzksMTAgQEAgSXQgbWF5IGFsc28gaGF2ZSBzb21lIGFy Y2hpdGVjdHVyZS1zcGVjaWZpYyBzZWN0aW9ucy4gRm9yIGV4YW1wbGU6CiAgKiBFeGNlcHRpb24g dGFibGVzLgogICogUmVsb2NhdGlvbnMgZm9yIGVhY2ggb2YgdGhlc2Ugc2VjdGlvbnMuCiAKK05v dGUgdGhhdCBvbiBBUk0gMzIgdGhlIHNlY3Rpb25zIFNIT1VMRCBiZSBmb3VyIGJ5dGUgYWxpZ25l ZC4gT3RoZXJ3aXNlCit3ZSByaXNrIGhpdHRpbmcgRGF0YSBBYm9ydCBleGNlcHRpb24gYXMgdW4t YWxpZ25lZCBtYW5pcHVsYXRpb24gb2YgZGF0YSBpcworcHJvaGliaXRlZCBvbiBBUk0gMzIuCisK IFRoZSBYZW4gTGl2ZSBQYXRjaCBjb3JlIGNvZGUgbG9hZHMgdGhlIHBheWxvYWQgYXMgYSBzdGFu ZGFyZCBFTEYgYmluYXJ5LCByZWxvY2F0ZXMgaXQKIGFuZCBoYW5kbGVzIHRoZSBhcmNoaXRlY3R1 cmUtc3BlY2lmYyBzZWN0aW9ucyBhcyBuZWVkZWQuIFRoaXMgcHJvY2VzcyBpcyBtdWNoCiBsaWtl IHdoYXQgdGhlIExpbnV4IGtlcm5lbCBtb2R1bGUgbG9hZGVyIGRvZXMuCkBAIC0zNDEsNyArMzQ1 LDcgQEAgVGhlIHNpemUgb2YgdGhlIHN0cnVjdHVyZSBpcyA2NCBieXRlcyBvbiA2NC1iaXQgaHlw ZXJ2aXNvcnMuIEl0IHdpbGwgYmUKICogYG9wYXF1ZWAgKipNVVNUKiogYmUgemVyby4KIAogVGhl IHNpemUgb2YgdGhlIGBsaXZlcGF0Y2hfZnVuY2AgYXJyYXkgaXMgZGV0ZXJtaW5lZCBmcm9tIHRo ZSBFTEYgc2VjdGlvbgotc2l6ZS4KK3NpemUuICBPbiBBUk0zMiB0aGlzIHNlY3Rpb24gbXVzdCBi eSBmb3VyLWJ5dGUgYWxpZ25lZC4KIAogV2hlbiBhcHBseWluZyB0aGUgcGF0Y2ggdGhlIGh5cGVy dmlzb3IgaXRlcmF0ZXMgb3ZlciBlYWNoIGBsaXZlcGF0Y2hfZnVuY2AKIHN0cnVjdHVyZSBhbmQg dGhlIGNvcmUgY29kZSBpbnNlcnRzIGEgdHJhbXBvbGluZSBhdCBgb2xkX2FkZHJgIHRvIGBuZXdf YWRkcmAuCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMgYi94ZW4v YXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMKaW5kZXggNDEzNzhhNTRhZS4uZDQ4ODIwZjhiYSAx MDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2FybTMyL2xpdmVwYXRjaC5jCisrKyBiL3hlbi9hcmNo L2FybS9hcm0zMi9saXZlcGF0Y2guYwpAQCAtMTEyLDYgKzExMiwxMiBAQCBib29sIGFyY2hfbGl2 ZXBhdGNoX3N5bWJvbF9kZW55KGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYsCiAgICAg cmV0dXJuIGZhbHNlOwogfQogCitib29sIGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9hbGlnbm1lbnQo Y29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpzZWMpCit7CisgICAgLyogVW5hbGlnbmVk IGFjY2VzcyBvbiBBUk0gMzIgd2lsbCBjcmFzaCB3aXRoIERhdGEgQWJvcnQuICovCisgICAgcmV0 dXJuICh1aW50MzJfdClzZWMtPmxvYWRfYWRkciAlIHNpemVvZih1aW50MzJfdCk7Cit9OworCiBz dGF0aWMgczMyIGdldF9hZGRlbmQodW5zaWduZWQgY2hhciB0eXBlLCB2b2lkICpkZXN0KQogewog ICAgIHMzMiBhZGRlbmQgPSAwOwpAQCAtMjY2LDYgKzI3MiwxNSBAQCBpbnQgYXJjaF9saXZlcGF0 Y2hfcGVyZm9ybShzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAogICAgICAgICAgICAgICAgICAg ICBlbGYtPm5hbWUsIHN5bW5keCk7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAg ICAgfQorCisgICAgICAgIGlmICggIXVzZV9yZWxhICkKKyAgICAgICAgICAgIGFkZGVuZCA9IGdl dF9hZGRlbmQodHlwZSwgZGVzdCk7CisgICAgICAgIGVsc2UgaWYgKCAodWludDMyX3QpZGVzdCAl IHNpemVvZih1aW50MzJfdCkgKQorICAgICAgICB7CisgICAgICAgICAgICBkcHJpbnRrKFhFTkxP R19FUlIsIExJVkVQQVRDSCAiJXM6IGRlc3Q9JXAgKCVzKSBpcyBub3QgYWxpZ25lZCBwcm9wZXJs eSFcbiIsCisgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgZGVzdCwgYmFzZS0+bmFtZSk7 CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgfQogICAgICAgICBlbHNlIGlm ICggIWVsZi0+c3ltW3N5bW5keF0uc3ltICkKICAgICAgICAgewogICAgICAgICAgICAgZHByaW50 ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBObyByZWxhdGl2ZSBzeW1ib2xAJXVcbiIsCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vYXJtNjQvbGl2ZXBhdGNoLmMgYi94ZW4vYXJjaC9hcm0v YXJtNjQvbGl2ZXBhdGNoLmMKaW5kZXggMjI0N2I5MjVhMC4uN2IzNjIxMGNjZCAxMDA2NDQKLS0t IGEveGVuL2FyY2gvYXJtL2FybTY0L2xpdmVwYXRjaC5jCisrKyBiL3hlbi9hcmNoL2FybS9hcm02 NC9saXZlcGF0Y2guYwpAQCAtODYsNiArODYsMTIgQEAgYm9vbCBhcmNoX2xpdmVwYXRjaF9zeW1i b2xfZGVueShjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAogICAgIHJldHVybiBmYWxz ZTsKIH0KIAorYm9vbCBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfYWxpZ25tZW50KGNvbnN0IHN0cnVj dCBsaXZlcGF0Y2hfZWxmX3NlYyAqc2VjKQoreworICAgIC8qIFVuYWxpZ25lZCBhY2Nlc3Mgb24g QVJNIDY0IGlzIE9LLiAqLworICAgIHJldHVybiBmYWxzZTsKK30KKwogZW51bSBhYXJjaDY0X3Jl bG9jX29wIHsKICAgICBSRUxPQ19PUF9OT05FLAogICAgIFJFTE9DX09QX0FCUywKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9saXZlcGF0Y2guYyBiL3hlbi9hcmNoL3g4Ni9saXZlcGF0Y2guYwpp bmRleCA0MDZlYjkxMGNjLi5iM2NiZGFjOWI3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbGl2 ZXBhdGNoLmMKKysrIGIveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jCkBAIC0xNDgsNiArMTQ4LDEy IEBAIGJvb2wgYXJjaF9saXZlcGF0Y2hfc3ltYm9sX2RlbnkoY29uc3Qgc3RydWN0IGxpdmVwYXRj aF9lbGYgKmVsZiwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgYXJjaF9saXZlcGF0Y2hf dmVyaWZ5X2FsaWdubWVudChjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnNlYykKK3sK KyAgICAvKiBVbmFsaWduZWQgYWNjZXNzIG9uIHg4NiBpcyBmaW5lLiAqLworICAgIHJldHVybiBm YWxzZTsKK30KKwogaW50IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm1fcmVsKHN0cnVjdCBsaXZlcGF0 Y2hfZWxmICplbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IGxpdmVwYXRjaF9lbGZfc2VjICpiYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqcmVsYSkKZGlmZiAtLWdpdCBhL3hlbi9j b21tb24vbGl2ZXBhdGNoLmMgYi94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCmluZGV4IDQwZmY2YjNh MjcuLjEzZDhmMjVhNGIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKKysrIGIv eGVuL2NvbW1vbi9saXZlcGF0Y2guYwpAQCAtNDcyLDYgKzQ3MiwxMyBAQCBzdGF0aWMgaW50IGNo ZWNrX3NlY3Rpb24oY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CiAgICAgfQogCisgICAgaWYgKCBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfYWxp Z25tZW50KHNlYykgKQorICAgIHsKKyAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFU Q0ggIiVzOiAlcyBpcyBub3QgYWxpZ25lZCBwcm9wZXJseSFcbiIsCisgICAgICAgICAgICAgICBl bGYtPm5hbWUsIHNlYy0+bmFtZSk7CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKwog ICAgIHJldHVybiAwOwogfQogCkBAIC01MDEsNyArNTA4LDEyIEBAIHN0YXRpYyBpbnQgY2hlY2tf c3BlY2lhbF9zZWN0aW9ucyhjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmKQogICAgICAg ICAgICAgICAgICAgICBlbGYtPm5hbWUsIG5hbWVzW2ldKTsKICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOwogICAgICAgICB9Ci0KKyAgICAgICAgaWYgKCBhcmNoX2xpdmVwYXRjaF92ZXJpZnlf YWxpZ25tZW50KHNlYykgKQorICAgICAgICB7CisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19F UlIsIExJVkVQQVRDSCAiJXM6ICVzIGlzIG5vdCBhbGlnbmVkIHByb3Blcmx5IVxuIiwKKyAgICAg ICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBuYW1lc1tpXSk7CisgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsKKyAgICAgICAgfQogICAgICAgICBpZiAoIHRlc3RfYW5kX3NldF9iaXQoaSwgZm91 bmQpICkKICAgICAgICAgewogICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFU Q0ggIiVzOiAlcyB3YXMgc2VlbiBtb3JlIHRoYW4gb25jZSFcbiIsCmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS94ZW4vbGl2ZXBhdGNoLmggYi94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoLmgKaW5k ZXggOThlYzAxMjE2Yi4uZTliYWI4N2YyOCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2xp dmVwYXRjaC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaApAQCAtNzYsNiArNzYs NyBAQCB2b2lkIGFyY2hfbGl2ZXBhdGNoX2luaXQodm9pZCk7CiAjaW5jbHVkZSA8YXNtL2xpdmVw YXRjaC5oPgogaW50IGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9mdW5jKGNvbnN0IHN0cnVjdCBsaXZl cGF0Y2hfZnVuYyAqZnVuYyk7CiAKK2Jvb2wgYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2FsaWdubWVu dChjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnNlYyk7CiBzdGF0aWMgaW5saW5lCiB1 bnNpZ25lZCBpbnQgbGl2ZXBhdGNoX2luc25fbGVuKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZnVu YyAqZnVuYykKIHsKLS0gCjIuMTMuMwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=