From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v3 04/17] xen/livepatch/ARM32: Don't load and crash on livepatches loaded with wrong text alignment. Date: Mon, 11 Sep 2017 20:37:13 -0400 Message-ID: <20170912003726.368-5-konrad.wilk@oracle.com> References: <20170912003726.368-1-konrad.wilk@oracle.com> 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 1drZD7-0000d3-7k for xen-devel@lists.xenproject.org; Tue, 12 Sep 2017 00:37:53 +0000 Received: by mail-qk0-f194.google.com with SMTP id c69so6371605qke.5 for ; Mon, 11 Sep 2017 17:37:51 -0700 (PDT) In-Reply-To: <20170912003726.368-1-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, ross.lagerwall@citrix.com, konrad.wilk@oracle.com, julien.grall@arm.com, sstabellini@kernel.org Cc: andrew.cooper3@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org VGhlIEFSTSAzMiY2NCBFTEYgc3BlY2lmaWNhdGlvbiBzYXlzICJzZWN0aW9ucyBjb250YWluaW5n IEFSTQpjb2RlIG11c3QgYmUgYXQgbGVhc3QgMzItYml0IGFsaWduZWQuIiBUaGlzIHBhdGNoIGFk ZHMgdGhlCmNoZWNrIGZvciB0aGF0LiBXZSBhbHNvIG1ha2Ugc3VyZSB0aGF0IHRoaXMgY2hlY2sg aXMgZG9uZQp3aGVuIGRvaW5nIHJlbG9jYXRpb25zIGZvciB0aGUgdHlwZXMgdGhhdCBhcmUgY29u c2lkZXJlZApBUk0gY29kZS4gSG93ZXZlciB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGZvciBhbGwg YXMgd2Ugb25seQppbXBsZW1lbnQgYSBzbWFsbCBzdWJzZXQgb2YgdGhlbSAtIGFzIHN1Y2ggd2Ug b25seSBjaGVjayBmb3IKZGF0YSB0eXBlcyB0aGF0IGFyZSBpbXBsZW1lbnRlZCAtIGFuZCBpZiB0 aGUgdHlwZSBpcyBhbnl0aGluZyBlbHNlCmFuZCBub3QgYWxpZ25lZCB0byAzMi1iaXQsIHRoZW4g d2UgZXJyb3Igb3V0LgoKU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25y YWQud2lsa0BvcmFjbGUuY29tPgotLS0KdjE6IEluaXRpYWwgcGF0Y2gKdjI6IFJlZG8gdGhlIGNv bW1pdCB0byBpbmNsdWRlIHRoZSBjb21taXRzIHdoaWNoIGZpeCB0aGUgYWxpZ25tZW50IGlzc3Vl cy4KICAgIEFsc28gbWVudGlvbiB0aGUgbmVlZCBpbiB0aGUgZG9jcwp2MzogQ2hhbmdlIHRoZSBk b2NzIHRvIGV4cGxpY2l0bHkgbWVudGlvbiB0ZXh0IGNvZGUgc2VjdGlvbiBhbGlnbm1lbnQgcmVx dWlyZW1lbnRzLgogICAgSW52ZXJ0IGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9hbGlnbm1lbnQgcmV0 dXJuIHZhbHVlICh0cnVlIGZvciBhbGlnbm1lbnQgaXMgb2spLgogICAgRHJvcCB0aGUgYWxpZ25t ZW50IGNoZWNrIGluIGNoZWNrX3NwZWNpYWxfc2VjdGlvbnMuCiAgICBNYWtlIHRoZSBhbGlnbm1l bnQgY2hlY2sgaW4gY2hlY2tfc2VjdGlvbiBvbmx5IGZvciBleGVjdXRhYmxlIHNlY3Rpb25zLgog ICAgUmV3cm90ZSB0aGUgY29tbWl0IG1lc3NhZ2UgYXMgaXQgaXMgbm90IGFwcGxpY2FibGUgdG8g djIgb2YgdGhlIHBhdGNoIGFueW1vcmUuCi0tLQogZG9jcy9taXNjL2xpdmVwYXRjaC5tYXJrZG93 biAgIHwgIDIgKysKIHhlbi9hcmNoL2FybS9hcm0zMi9saXZlcGF0Y2guYyB8IDIyICsrKysrKysr KysrKysrKysrKysrLS0KIHhlbi9hcmNoL2FybS9hcm02NC9saXZlcGF0Y2guYyB8ICA2ICsrKysr KwogeGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jICAgICAgIHwgIDYgKysrKysrCiB4ZW4vY29tbW9u L2xpdmVwYXRjaC5jICAgICAgICAgfCAgNyArKysrKysrCiB4ZW4vaW5jbHVkZS94ZW4vbGl2ZXBh dGNoLmggICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jcy9taXNjL2xpdmVwYXRjaC5tYXJrZG93biBiL2Rv Y3MvbWlzYy9saXZlcGF0Y2gubWFya2Rvd24KaW5kZXggNTRhNmI4NTBjYi4uNTA1ZGMzN2NkYSAx MDA2NDQKLS0tIGEvZG9jcy9taXNjL2xpdmVwYXRjaC5tYXJrZG93bgorKysgYi9kb2NzL21pc2Mv bGl2ZXBhdGNoLm1hcmtkb3duCkBAIC0yNzksNiArMjc5LDggQEAgSXQgbWF5IGFsc28gaGF2ZSBz b21lIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBzZWN0aW9ucy4gRm9yIGV4YW1wbGU6CiAgKiBFeGNl cHRpb24gdGFibGVzLgogICogUmVsb2NhdGlvbnMgZm9yIGVhY2ggb2YgdGhlc2Ugc2VjdGlvbnMu CiAKK05vdGUgdGhhdCBvbiBBUk0gMzIgdGhlIHNlY3Rpb25zIGNvbnRhaW5pbmcgY29kZSBNVVNU IGJlIGZvdXIgYnl0ZSBhbGlnbmVkLgorCiBUaGUgWGVuIExpdmUgUGF0Y2ggY29yZSBjb2RlIGxv YWRzIHRoZSBwYXlsb2FkIGFzIGEgc3RhbmRhcmQgRUxGIGJpbmFyeSwgcmVsb2NhdGVzIGl0CiBh bmQgaGFuZGxlcyB0aGUgYXJjaGl0ZWN0dXJlLXNwZWNpZmMgc2VjdGlvbnMgYXMgbmVlZGVkLiBU aGlzIHByb2Nlc3MgaXMgbXVjaAogbGlrZSB3aGF0IHRoZSBMaW51eCBrZXJuZWwgbW9kdWxlIGxv YWRlciBkb2VzLgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2FybTMyL2xpdmVwYXRjaC5jIGIv eGVuL2FyY2gvYXJtL2FybTMyL2xpdmVwYXRjaC5jCmluZGV4IDQxMzc4YTU0YWUuLjEwODg3YWNl ODEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9hcm0zMi9saXZlcGF0Y2guYworKysgYi94ZW4v YXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMKQEAgLTExMiw2ICsxMTIsMTUgQEAgYm9vbCBhcmNo X2xpdmVwYXRjaF9zeW1ib2xfZGVueShjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAog ICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfYWxpZ25t ZW50KGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqc2VjKQoreworICAgIGlmICggc2Vj LT5zZWMtPnNoX2ZsYWdzICYgU0hGX0VYRUNJTlNUUiAmJgorICAgICAgICAgKCh1aW50MzJfdClz ZWMtPmxvYWRfYWRkciAlIHNpemVvZih1aW50MzJfdCkpICkKKyAgICAgICAgcmV0dXJuIGZhbHNl OworCisgICAgcmV0dXJuIHRydWU7Cit9OworCiBzdGF0aWMgczMyIGdldF9hZGRlbmQodW5zaWdu ZWQgY2hhciB0eXBlLCB2b2lkICpkZXN0KQogewogICAgIHMzMiBhZGRlbmQgPSAwOwpAQCAtMjMz LDcgKzI0Miw3IEBAIGludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3JtKHN0cnVjdCBsaXZlcGF0Y2hf ZWxmICplbGYsCiAgICAgICAgIHVpbnQzMl90IHZhbDsKICAgICAgICAgdm9pZCAqZGVzdDsKICAg ICAgICAgdW5zaWduZWQgY2hhciB0eXBlOwotICAgICAgICBzMzIgYWRkZW5kOworICAgICAgICBz MzIgYWRkZW5kID0gMDsKIAogICAgICAgICBpZiAoIHVzZV9yZWxhICkKICAgICAgICAgewpAQCAt MjUxLDcgKzI2MCw2IEBAIGludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3JtKHN0cnVjdCBsaXZlcGF0 Y2hfZWxmICplbGYsCiAgICAgICAgICAgICBzeW1uZHggPSBFTEYzMl9SX1NZTShyLT5yX2luZm8p OwogICAgICAgICAgICAgdHlwZSA9IEVMRjMyX1JfVFlQRShyLT5yX2luZm8pOwogICAgICAgICAg ICAgZGVzdCA9IGJhc2UtPmxvYWRfYWRkciArIHItPnJfb2Zmc2V0OyAvKiBQICovCi0gICAgICAg ICAgICBhZGRlbmQgPSBnZXRfYWRkZW5kKHR5cGUsIGRlc3QpOwogICAgICAgICB9CiAKICAgICAg ICAgaWYgKCBzeW1uZHggPT0gU1ROX1VOREVGICkKQEAgLTI3Miw2ICsyODAsMTYgQEAgaW50IGFy Y2hfbGl2ZXBhdGNoX3BlcmZvcm0oc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKICAgICAgICAg ICAgICAgICAgICAgZWxmLT5uYW1lLCBzeW1uZHgpOwogICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7CiAgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoICh0eXBlICE9IFJfQVJNX0FCUzMyICYm IHR5cGUgIT0gUl9BUk1fUkVMMzIpIC8qIE9ubHkgY2hlY2sgY29kZS4gKi8gJiYKKyAgICAgICAg ICAgICAgICAgICgodWludDMyX3QpZGVzdCAlIHNpemVvZih1aW50MzJfdCkpICkKKyAgICAgICAg eworICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBkZXN0PSVw ICglcykgaXMgbm90IGFsaWduZWQgcHJvcGVybHkhXG4iLAorICAgICAgICAgICAgICAgICAgICBl bGYtPm5hbWUsIGRlc3QsIGJhc2UtPm5hbWUpOworICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CisgICAgICAgIH0KKworICAgICAgICBpZiAoICF1c2VfcmVsYSApCisgICAgICAgICAgICBhZGRl bmQgPSBnZXRfYWRkZW5kKHR5cGUsIGRlc3QpOwogCiAgICAgICAgIHZhbCA9IGVsZi0+c3ltW3N5 bW5keF0uc3ltLT5zdF92YWx1ZTsgLyogUyAqLwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0v YXJtNjQvbGl2ZXBhdGNoLmMgYi94ZW4vYXJjaC9hcm0vYXJtNjQvbGl2ZXBhdGNoLmMKaW5kZXgg MjI0N2I5MjVhMC4uMjcyOGUyYTEyNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2FybTY0L2xp dmVwYXRjaC5jCisrKyBiL3hlbi9hcmNoL2FybS9hcm02NC9saXZlcGF0Y2guYwpAQCAtODYsNiAr ODYsMTIgQEAgYm9vbCBhcmNoX2xpdmVwYXRjaF9zeW1ib2xfZGVueShjb25zdCBzdHJ1Y3QgbGl2 ZXBhdGNoX2VsZiAqZWxmLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBhcmNoX2xpdmVw YXRjaF92ZXJpZnlfYWxpZ25tZW50KGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqc2Vj KQoreworICAgIC8qIFVuYWxpZ25lZCBhY2Nlc3Mgb24gQVJNIDY0IGlzIE9LLiAqLworICAgIHJl dHVybiB0cnVlOworfQorCiBlbnVtIGFhcmNoNjRfcmVsb2Nfb3AgewogICAgIFJFTE9DX09QX05P TkUsCiAgICAgUkVMT0NfT1BfQUJTLApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2xpdmVwYXRj aC5jIGIveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jCmluZGV4IDQwNmViOTEwY2MuLjQ4ZDIwZmRh Y2QgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9saXZlcGF0Y2guYworKysgYi94ZW4vYXJjaC94 ODYvbGl2ZXBhdGNoLmMKQEAgLTE0OCw2ICsxNDgsMTIgQEAgYm9vbCBhcmNoX2xpdmVwYXRjaF9z eW1ib2xfZGVueShjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAogICAgIHJldHVybiBm YWxzZTsKIH0KIAorYm9vbCBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfYWxpZ25tZW50KGNvbnN0IHN0 cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqc2VjKQoreworICAgIC8qIFVuYWxpZ25lZCBhY2Nlc3Mg b24geDg2IGlzIGZpbmUuICovCisgICAgcmV0dXJuIHRydWU7Cit9CisKIGludCBhcmNoX2xpdmVw YXRjaF9wZXJmb3JtX3JlbChzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqYmFzZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Vs Zl9zZWMgKnJlbGEpCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2xpdmVwYXRjaC5jIGIveGVuL2Nv bW1vbi9saXZlcGF0Y2guYwppbmRleCBjNmVlOTVmYmNmLi5kYmFiOGEzZjZmIDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCisrKyBiL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKQEAg LTQ3Myw2ICs0NzMsMTMgQEAgc3RhdGljIGJvb2wgc2VjdGlvbl9vayhjb25zdCBzdHJ1Y3QgbGl2 ZXBhdGNoX2VsZiAqZWxmLAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgaWYg KCAhYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2FsaWdubWVudChzZWMpICkKKyAgICB7CisgICAgICAg IGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogJXMgdGV4dCBzZWN0aW9uIGlzIG5v dCBhbGlnbmVkIHByb3Blcmx5IVxuIiwKKyAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgc2VjLT5u YW1lKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHJldHVybiB0cnVlOwog fQogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoLmggYi94ZW4vaW5jbHVk ZS94ZW4vbGl2ZXBhdGNoLmgKaW5kZXggOThlYzAxMjE2Yi4uZTliYWI4N2YyOCAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUveGVuL2xpdmVwYXRjaC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9saXZl cGF0Y2guaApAQCAtNzYsNiArNzYsNyBAQCB2b2lkIGFyY2hfbGl2ZXBhdGNoX2luaXQodm9pZCk7 CiAjaW5jbHVkZSA8YXNtL2xpdmVwYXRjaC5oPgogaW50IGFyY2hfbGl2ZXBhdGNoX3ZlcmlmeV9m dW5jKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYyk7CiAKK2Jvb2wgYXJjaF9saXZl cGF0Y2hfdmVyaWZ5X2FsaWdubWVudChjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnNl Yyk7CiBzdGF0aWMgaW5saW5lCiB1bnNpZ25lZCBpbnQgbGl2ZXBhdGNoX2luc25fbGVuKGNvbnN0 IHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYykKIHsKLS0gCjIuMTMuMwoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=