From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v2 12/13] fuzz/x86_emulate: Set and fuzz more CPU state Date: Mon, 25 Sep 2017 15:26:47 +0100 Message-ID: <20170925142648.25959-12-george.dunlap@citrix.com> References: <20170925142648.25959-1-george.dunlap@citrix.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 1dwUMy-0004W7-4z for xen-devel@lists.xenproject.org; Mon, 25 Sep 2017 14:28:24 +0000 In-Reply-To: <20170925142648.25959-1-george.dunlap@citrix.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 Cc: Ian Jackson , Wei Liu , George Dunlap , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org eDg2X2VtdWxhdGUoKSBvcGVyYXRlcyBub3Qgb25seSBvbiBzdGF0ZSBwYXNzZWQgdG8gaXQgaW4K Y3B1X3VzZXJfcmVncywgYnV0IGFsc28gb24gc3RhdGUgY3VycmVudGx5IGZvdW5kIG9uIHRoZSBj cHU6IG5hbWVseSwKdGhlIEZQVSBhbmQgWE1NIHJlZ2lzdGVycy4gIEF0IHRoZSBtb21lbnQsIHdl IHJlLXplcm8gKGFuZC9vcgpyZS1pbml0aWFsaXplKSBjcHVfdXNlcl9yZWdzIG9uIGV2ZXJ5IGlu dm9jYXRpb24sIGJ1dCBsZWF2ZSB0aGUKY3B1LXN0b3JlZCBzdGF0ZSBhbG9uZS4gIEluICJwZXJz aXN0ZW50IG1vZGUiLCB0aGlzIGNhdXNlcyB0ZXN0IGNhc2VzCnRvIGJlaGF2ZSBkaWZmZXJlbnRs eSAtLSBzb21ldGltZXMgc2lnbmlmaWNhbnRseSBzbyAtLSBkZXBlbmRpbmcgb24Kd2hpY2ggdGVz dCBjYXNlcyBoYXZlIGJlZW4gcnVuIGJlZm9yZWhhbmQuCgpaZXJvIG91dCB0aGUgc3RhdGUgYmVm b3JlIGVhY2ggdGVzdCBydW4sIGFuZCB0aGVuIGZ1enogaXQgYmFzZWQgb24gdGhlCmNvcnB1cyBp bnB1dC4KClNpZ25lZC1vZmYtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4 LmNvbT4KLS0tCnYyOiBSZWJhc2Ugb24gdG9wIG9mIHByZXZpb3VzIGNoYW5nZXMKCkNDOiBJYW4g SmFja3NvbiA8aWFuLmphY2tzb25AY2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNp dHJpeC5jb20+CkNDOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpD QzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KIHRvb2xzL2Z1enoveDg2X2lu c3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jIHwgNzEgKysrKysrKysrKysrKysrKysrKysr KysrKwogMSBmaWxlIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90b29s cy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYyBiL3Rvb2xzL2Z1enov eDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCmluZGV4IDIxZDAwYjc0MTYuLjQ4 Y2FkMDMwN2EgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9y L2Z1enotZW11bC5jCisrKyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1 enotZW11bC5jCkBAIC0zOCw2ICszOCw4IEBAIHN0cnVjdCBmdXp6X3N0YXRlCiAgICAgdWludDY0 X3QgbXNyW01TUl9JTkRFWF9NQVhdOwogICAgIHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyIHNlZ21l bnRzW1NFR19OVU1dOwogICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHJlZ3M7CisgICAgY2hhciBm eHNhdmVbNTEyXSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDE2KSkpOworCiAKICAgICAvKiBGdXp6 ZXIncyBpbnB1dCBkYXRhLiAqLwogICAgIGNvbnN0IHN0cnVjdCBmdXp6X2NvcnB1cyAqY29ycHVz OwpAQCAtNTk3LDYgKzU5OSw0NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29w cyBhbGxfZnV6emVyX29wcyA9IHsKIH07CiAjdW5kZWYgU0VUCiAKK3N0YXRpYyB2b2lkIF9zZXRf ZnB1X3N0YXRlKGNoYXIgKmZ4c2F2ZSwgYm9vbCBzdG9yZSkKK3sKKyAgICBpZiAoIGNwdV9oYXNf ZnhzciApCisgICAgeworICAgICAgICBzdGF0aWMgdW5pb24gX19hdHRyaWJ1dGVfXygoX19hbGln bmVkX18oMTYpKSkgeworICAgICAgICAgICAgY2hhciB4WzQ2NF07CisgICAgICAgICAgICBzdHJ1 Y3QgeworICAgICAgICAgICAgICAgIHVpbnQzMl90IG90aGVyWzZdOworICAgICAgICAgICAgICAg IHVpbnQzMl90IG14Y3NyOworICAgICAgICAgICAgICAgIHVpbnQzMl90IG14Y3NyX21hc2s7Cisg ICAgICAgICAgICAgICAgLyogLi4uICovCisgICAgICAgICAgICB9OworICAgICAgICB9ICpmeHM7 CisKKyAgICAgICAgZnhzID0gKHR5cGVvZihmeHMpKSBmeHNhdmU7CisKKyAgICAgICAgaWYgKCBz dG9yZSApIHsKKyAgICAgICAgICAgIGNoYXIgbnVsbFs1MTJdIF9fYXR0cmlidXRlX18oKGFsaWdu ZWQoMTYpKSkgPSB7IDAgfTsKKyAgICAgICAgICAgIGFzbSB2b2xhdGlsZSgiIGZ4cnN0b3IgJTA7 ICI6OiJtIigqbnVsbCkpOworICAgICAgICAgICAgYXNtIHZvbGF0aWxlKCIgZnhyc3RvciAlMDsg Ijo6Im0iKCpmeHNhdmUpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYXNtIHZvbGF0 aWxlKCAiZnhzYXZlICUwIiA6ICI9bSIgKCpmeHMpICk7CisKKyAgICAgICAgaWYgKCBmeHMtPm14 Y3NyX21hc2sgKQorICAgICAgICAgICAgbXhjc3JfbWFzayA9IGZ4cy0+bXhjc3JfbWFzazsKKyAg ICAgICAgZWxzZQorICAgICAgICAgICAgbXhjc3JfbWFzayA9IDB4MDAwZmZiZjsKKyAgICB9Cit9 CisKK3N0YXRpYyB2b2lkIHNldF9mcHVfc3RhdGUoY2hhciAqZnhzYXZlKQoreworICAgIF9zZXRf ZnB1X3N0YXRlKGZ4c2F2ZSwgdHJ1ZSk7Cit9CisKK3N0YXRpYyB2b2lkIHNhdmVfZnB1X3N0YXRl KGNoYXIgKmZ4c2F2ZSkKK3sKKyAgICBfc2V0X2ZwdV9zdGF0ZShmeHNhdmUsIGZhbHNlKTsKK30K Kwogc3RhdGljIHZvaWQgc2V0dXBfZnB1X2V4Y2VwdGlvbl9oYW5kbGVyKHZvaWQpCiB7CiAgICAg LyogRklYTUUgLSBqdXN0IGRpc2FibGUgZXhjZXB0aW9ucyBmb3Igbm93ICovCkBAIC03MzcsNiAr NzgwLDE3IEBAIHN0YXRpYyB2b2lkIHNldHVwX3N0YXRlKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0 ICpjdHh0KQogICAgICAgICAgICAgcHJpbnRmKCJTZXR0aW5nIGNwdV91c2VyX3JlZ3Mgb2Zmc2V0 ICV4XG4iLCBvZmZzZXQpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KKyAgICAg ICAgb2Zmc2V0IC09IHNpemVvZihzdHJ1Y3QgY3B1X3VzZXJfcmVncyk7CisKKyAgICAgICAgLyog RnV6eiBmeHNhdmUgc3RhdGUgKi8KKyAgICAgICAgaWYgKCBvZmZzZXQgPCAxMjggKQorICAgICAg ICB7CisgICAgICAgICAgICBpZiAoICFpbnB1dF9yZWFkKHMsIHMtPmZ4c2F2ZSArIChvZmZzZXQg KiA0KSwgNCkgKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHByaW50Zigi U2V0dGluZyBmeHNhdmUgb2Zmc2V0ICV4XG4iLCBvZmZzZXQgKiA0KTsKKyAgICAgICAgICAgIGNv bnRpbnVlOworICAgICAgICB9CisgICAgICAgIG9mZnNldCAtPSAxMjg7CiAKICAgICAgICAgLyog Tm9uZSBvZiB0aGUgYWJvdmUgLS0gdGFrZSB0aGF0IGFzICJzdGFydCBlbXVsYXRpbmciICovCiAg ICAgICAgIApAQCAtODgzLDYgKzkzNyw5IEBAIHN0YXRpYyB2b2lkIHNhbml0aXplX3N0YXRlKHN0 cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogICAgICAgICBzLT5zZWdtZW50c1t4ODZfc2Vn X2NzXS5kYiA9IDA7CiAgICAgICAgIHMtPnNlZ21lbnRzW3g4Nl9zZWdfc3NdLmRiID0gMDsKICAg ICB9CisKKyAgICAvKiBTZXR0aW5nIHRoaXMgdmFsdWUgc2VlbXMgdG8gY2F1c2UgY3Jhc2hlcyBp biBmeHJzdG9yICovCisgICAgKigodW5zaWduZWQgaW50ICopKHMtPmZ4c2F2ZSkgKyA2KSA9IDA7 CiB9CiAKIGludCBMTFZNRnV6emVySW5pdGlhbGl6ZShpbnQgKmFyZ2MsIGNoYXIgKioqYXJndikK QEAgLTkyMCw2ICs5NzcsOCBAQCBpbnQgcnVudGVzdChzdHJ1Y3QgZnV6el9zdGF0ZSAqc3RhdGUp IHsKIAogICAgIGRpc2FibGVfaG9va3Moc3RhdGUpOwogCisgICAgc2V0X2ZwdV9zdGF0ZShzdGF0 ZS0+ZnhzYXZlKTsKKwogICAgIGRvIHsKICAgICAgICAgLyogRklYTUU6IFVudGlsIHdlIGFjdHVh bGx5IGltcGxlbWVudCBTSUdGUEUgaGFuZGxpbmcgcHJvcGVybHkgKi8KICAgICAgICAgc2V0dXBf ZnB1X2V4Y2VwdGlvbl9oYW5kbGVyKCk7CkBAIC05MzEsNiArOTkwLDggQEAgaW50IHJ1bnRlc3Qo c3RydWN0IGZ1enpfc3RhdGUgKnN0YXRlKSB7CiAgICAgICAgIHByaW50ZigiRW11bGF0aW9uIHJl c3VsdDogJWRcbiIsIHJjKTsKICAgICB9IHdoaWxlICggcmMgPT0gWDg2RU1VTF9PS0FZICk7CiAK KyAgICBzYXZlX2ZwdV9zdGF0ZShzdGF0ZS0+ZnhzYXZlKTsKKyAgICAKICAgICByZXR1cm4gMDsK IH0KIApAQCAtMTAwNyw2ICsxMDY4LDE2IEBAIHZvaWQgY29tcGFyZV9zdGF0ZXMoc3RydWN0IGZ1 enpfc3RhdGUgc3RhdGVbMl0pCiAgICAgICAgIGlmICggbWVtY21wKCZzdGF0ZVswXS5vcHMsICZz dGF0ZVsxXS5vcHMsIHNpemVvZihzdGF0ZVswXS5vcHMpKSApCiAgICAgICAgICAgICBwcmludGYo Im9wcyBkaWZmZXIhXG4iKTsKIAorICAgICAgICBpZiAoIG1lbWNtcCgmc3RhdGVbMF0uZnhzYXZl LCAmc3RhdGVbMV0uZnhzYXZlLCBzaXplb2Yoc3RhdGVbMF0uZnhzYXZlKSkgKQorICAgICAgICB7 CisgICAgICAgICAgICBwcmludGYoImZ4c2F2ZSBkaWZmZXJzIVxuIik7CisgICAgICAgICAgICBm b3IgKCBpID0gMDsgIGkgPCBzaXplb2Yoc3RhdGVbMF0uZnhzYXZlKS9zaXplb2YodW5zaWduZWQp OyBpKysgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHByaW50ZigiWyUwNGx1XSAl MDh4ICUwOHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBpICogc2l6ZW9mKHVuc2lnbmVk KSwgKCh1bnNpZ25lZCAqKSZzdGF0ZVswXS5meHNhdmUpW2ldLCAoKHVuc2lnbmVkICopJnN0YXRl WzFdLmZ4c2F2ZSlbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgaWYg KCBtZW1jbXAoJnN0YXRlWzBdLmN0eHQsICZzdGF0ZVsxXS5jdHh0LCBzaXplb2Yoc3RhdGVbMF0u Y3R4dCkpICkKICAgICAgICAgewogICAgICAgICAgICAgcHJpbnRmKCJjdHh0IGRpZmZlcnMhXG4i KTsKLS0gCjIuMTQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=