From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH for-4.9 v2] xen/livepatch: Don't crash on encountering STN_UNDEF relocations Date: Wed, 21 Jun 2017 19:13:36 +0100 Message-ID: <1498068816-21894-1-git-send-email-andrew.cooper3@citrix.com> References: <1497387096-19058-2-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1497387096-19058-2-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Stefano Stabellini , Andrew Cooper , Ross Lagerwall , Julien Grall , Jan Beulich List-Id: xen-devel@lists.xenproject.org QSBzeW1uZHggb2YgU1ROX1VOREVGIGlzIHNwZWNpYWwsIGFuZCBtZWFucyBhIHN5bWJvbCB2YWx1 ZSBvZiAwLiAgV2hpbGUKbGVnaXRpbWF0ZSBpbiB0aGUgRUxGIHN0YW5kYXJkLCBpdHMgZXhpc3Rh bmNlIGluIGEgbGl2ZXBhdGNoIGlzIHF1ZXN0aW9uYWJsZQphdCBiZXN0LiAgVW50aWwgYSBwbGF1 c2libGUgdXNlY2FzZSBwcmVzZW50cyBpdHNlbGYsIHJlamVjdCBzdWNoIGEgcmVsb2NhdGlvbgp3 aXRoIC1FT1BOT1RTVVBQLgoKQWRkaXRpb25hbGx5LCBwZXJmb3JtIGEgc2FmZXR5IGNoZWNrIG9u IGVsZi0+c3ltW3N5bW5keF0uc3ltIGJlZm9yZQpkZXJlZmVuY2luZyBpdCwgdG8gYXZvaWQgdHJp cHBpbmcgb3ZlciBhIE5VTEwgcG9pbnRlciB3aGVuIGNhbGN1bGF0aW5nIHZhbC4KClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzog S29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDQzogUm9zcyBM YWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+CkNDOiBKYW4gQmV1bGljaCA8SkJl dWxpY2hAc3VzZS5jb20+CkNDOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5l bC5vcmc+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoKdjI6CiAqIFJl amVjdCBTVE5fVU5ERUYgd2l0aCAtRU9QTk9UU1VQUAotLS0KIHhlbi9hcmNoL2FybS9hcm0zMi9s aXZlcGF0Y2guYyB8IDE3ICsrKysrKysrKysrKysrKy0tCiB4ZW4vYXJjaC9hcm0vYXJtNjQvbGl2 ZXBhdGNoLmMgfCAxNyArKysrKysrKysrKysrKystLQogeGVuL2FyY2gveDg2L2xpdmVwYXRjaC5j ICAgICAgIHwgMTcgKysrKysrKysrKysrKysrLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0 aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vYXJtMzIv bGl2ZXBhdGNoLmMgYi94ZW4vYXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMKaW5kZXggYTMyODE3 OS4uNTNmZWU5MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2FybTMyL2xpdmVwYXRjaC5jCisr KyBiL3hlbi9hcmNoL2FybS9hcm0zMi9saXZlcGF0Y2guYwpAQCAtMjU0LDE0ICsyNTQsMjcgQEAg aW50IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm0oc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKICAg ICAgICAgICAgIGFkZGVuZCA9IGdldF9hZGRlbmQodHlwZSwgZGVzdCk7CiAgICAgICAgIH0KIAor ICAgICAgICBpZiAoIHN5bW5keCA9PSBTVE5fVU5ERUYgKQorICAgICAgICB7CisgICAgICAgICAg ICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IEVuY291bnRlcmVkIFNUTl9VTkRF RlxuIiwKKyAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lKTsKKyAgICAgICAgICAgIHJldHVy biAtRU9QTk9UU1VQUDsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICggc3ltbmR4ID4gZWxmLT5u c3ltICkKICAgICAgICAgewogICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFU Q0ggIiVzOiBSZWxhdGl2ZSBzeW1ib2wgd2FudHMgc3ltYm9sQCV1IHdoaWNoIGlzIHBhc3QgZW5k IVxuIiwKICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBzeW1uZHgpOwogICAgICAgICAg ICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KLQotICAgICAgICB2YWwgPSBlbGYtPnN5bVtz eW1uZHhdLnN5bS0+c3RfdmFsdWU7IC8qIFMgKi8KKyAgICAgICAgZWxzZSBpZiAoICFlbGYtPnN5 bVtzeW1uZHhdLnN5bSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VS UiwgTElWRVBBVENIICIlczogTm8gcmVsYXRpdmUgc3ltYm9sQCV1XG4iLAorICAgICAgICAgICAg ICAgICAgICBlbGYtPm5hbWUsIHN5bW5keCk7CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK KyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICB2YWwgPSBlbGYtPnN5bVtzeW1u ZHhdLnN5bS0+c3RfdmFsdWU7IC8qIFMgKi8KIAogICAgICAgICByYyA9IHBlcmZvcm1fcmVsKHR5 cGUsIGRlc3QsIHZhbCwgYWRkZW5kKTsKICAgICAgICAgc3dpdGNoICggcmMgKQpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gvYXJtL2FybTY0L2xpdmVwYXRjaC5jIGIveGVuL2FyY2gvYXJtL2FybTY0L2xp dmVwYXRjaC5jCmluZGV4IDYzOTI5YjEuLmIwMzM3NjMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2Fy bS9hcm02NC9saXZlcGF0Y2guYworKysgYi94ZW4vYXJjaC9hcm0vYXJtNjQvbGl2ZXBhdGNoLmMK QEAgLTI1MiwxNCArMjUyLDI3IEBAIGludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3JtX3JlbGEoc3Ry dWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKICAgICAgICAgaW50IG92ZiA9IDA7CiAgICAgICAgIHVp bnQ2NF90IHZhbDsKIAorICAgICAgICBpZiAoIHN5bW5keCA9PSBTVE5fVU5ERUYgKQorICAgICAg ICB7CisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsIExJVkVQQVRDSCAiJXM6IEVuY291 bnRlcmVkIFNUTl9VTkRFRlxuIiwKKyAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lKTsKKyAg ICAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICgg c3ltbmR4ID4gZWxmLT5uc3ltICkKICAgICAgICAgewogICAgICAgICAgICAgZHByaW50ayhYRU5M T0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBSZWxhdGl2ZSByZWxvY2F0aW9uIHdhbnRzIHN5bWJvbEAl dSB3aGljaCBpcyBwYXN0IGVuZCFcbiIsCiAgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwg c3ltbmR4KTsKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9Ci0KLSAgICAg ICAgdmFsID0gZWxmLT5zeW1bc3ltbmR4XS5zeW0tPnN0X3ZhbHVlICsgIHItPnJfYWRkZW5kOyAv KiBTK0EgKi8KKyAgICAgICAgZWxzZSBpZiAoICFlbGYtPnN5bVtzeW1uZHhdLnN5bSApCisgICAg ICAgIHsKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBBVENIICIlczogTm8g cmVsYXRpdmUgc3ltYm9sQCV1XG4iLAorICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIHN5 bW5keCk7CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgfQorICAgICAgICBl bHNlCisgICAgICAgICAgICB2YWwgPSBlbGYtPnN5bVtzeW1uZHhdLnN5bS0+c3RfdmFsdWUgKyBy LT5yX2FkZGVuZDsgLyogUytBICovCiAKICAgICAgICAgLyogQVJNNjQgb3BlcmF0aW9ucyBhdCBt aW5pbXVtIGFyZSBhbHdheXMgMzItYml0LiAqLwogICAgICAgICBpZiAoIHItPnJfb2Zmc2V0ID49 IGJhc2UtPnNlYy0+c2hfc2l6ZSB8fApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2xpdmVwYXRj aC5jIGIveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jCmluZGV4IDc5MTc2MTAuLmJmYTU3NmMgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9saXZlcGF0Y2guYworKysgYi94ZW4vYXJjaC94ODYvbGl2 ZXBhdGNoLmMKQEAgLTE3MCwxNCArMTcwLDI3IEBAIGludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3Jt X3JlbGEoc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKICAgICAgICAgdWludDhfdCAqZGVzdCA9 IGJhc2UtPmxvYWRfYWRkciArIHItPnJfb2Zmc2V0OwogICAgICAgICB1aW50NjRfdCB2YWw7CiAK KyAgICAgICAgaWYgKCBzeW1uZHggPT0gU1ROX1VOREVGICkKKyAgICAgICAgeworICAgICAgICAg ICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBFbmNvdW50ZXJlZCBTVE5fVU5E RUZcbiIsCisgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSk7CisgICAgICAgICAgICByZXR1 cm4gLUVPUE5PVFNVUFA7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoIHN5bW5keCA+IGVsZi0+ bnN5bSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgTElWRVBB VENIICIlczogUmVsYXRpdmUgcmVsb2NhdGlvbiB3YW50cyBzeW1ib2xAJXUgd2hpY2ggaXMgcGFz dCBlbmQhXG4iLAogICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIHN5bW5keCk7CiAgICAg ICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQotCi0gICAgICAgIHZhbCA9IHItPnJf YWRkZW5kICsgZWxmLT5zeW1bc3ltbmR4XS5zeW0tPnN0X3ZhbHVlOworICAgICAgICBlbHNlIGlm ICggIWVsZi0+c3ltW3N5bW5keF0uc3ltICkKKyAgICAgICAgeworICAgICAgICAgICAgZHByaW50 ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBObyBzeW1ib2xAJXVcbiIsCisgICAgICAgICAg ICAgICAgICAgIGVsZi0+bmFtZSwgc3ltbmR4KTsKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFM OworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbCA9IHItPnJfYWRkZW5k ICsgZWxmLT5zeW1bc3ltbmR4XS5zeW0tPnN0X3ZhbHVlOwogCiAgICAgICAgIHN3aXRjaCAoIEVM RjY0X1JfVFlQRShyLT5yX2luZm8pICkKICAgICAgICAgewotLSAKMi4xLjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK