From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH 13/14] fuzz/x86_emulate: Set and fuzz more CPU state Date: Fri, 25 Aug 2017 17:43:42 +0100 Message-ID: <20170825164343.29015-13-george.dunlap@citrix.com> References: <20170825164343.29015-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dlHke-00066K-WF for xen-devel@lists.xenproject.org; Fri, 25 Aug 2017 16:46:33 +0000 In-Reply-To: <20170825164343.29015-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 LmNvbT4KLS0tCkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AY2l0cml4LmNvbT4KQ0M6IFdl aSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v cGVyM0BjaXRyaXguY29tPgpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0K IHRvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jIHwgNzEgKysr KysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVt dWwuYyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCmlu ZGV4IDFkMDI5M2U5OTAuLjdhMDdlN2UzN2EgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Z1enoveDg2X2lu c3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCisrKyBiL3Rvb2xzL2Z1enoveDg2X2luc3Ry dWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCkBAIC0zOCw2ICszOCw4IEBAIHN0cnVjdCBmdXp6 X3N0YXRlCiAgICAgdWludDY0X3QgbXNyW01TUl9JTkRFWF9NQVhdOwogICAgIHN0cnVjdCBzZWdt ZW50X3JlZ2lzdGVyIHNlZ21lbnRzW1NFR19OVU1dOwogICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdz IHJlZ3M7CisgICAgY2hhciBmeHNhdmVbNTEyXSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDE2KSkp OworCiAKICAgICAvKiBGdXp6ZXIncyBpbnB1dCBkYXRhLiAqLwogICAgIGNvbnN0IHN0cnVjdCBm dXp6X2NvcnB1cyAqY29ycHVzOwpAQCAtNTk3LDYgKzU5OSw0NyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHg4Nl9lbXVsYXRlX29wcyBhbGxfZnV6emVyX29wcyA9IHsKIH07CiAjdW5kZWYgU0VUCiAK K3N0YXRpYyB2b2lkIF9zZXRfZnB1X3N0YXRlKGNoYXIgKmZ4c2F2ZSwgYm9vbCBzdG9yZSkKK3sK KyAgICBpZiAoIGNwdV9oYXNfZnhzciApCisgICAgeworICAgICAgICBzdGF0aWMgdW5pb24gX19h dHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMTYpKSkgeworICAgICAgICAgICAgY2hhciB4WzQ2NF07 CisgICAgICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgICAgIHVpbnQzMl90IG90aGVyWzZd OworICAgICAgICAgICAgICAgIHVpbnQzMl90IG14Y3NyOworICAgICAgICAgICAgICAgIHVpbnQz Ml90IG14Y3NyX21hc2s7CisgICAgICAgICAgICAgICAgLyogLi4uICovCisgICAgICAgICAgICB9 OworICAgICAgICB9ICpmeHM7CisKKyAgICAgICAgZnhzID0gKHR5cGVvZihmeHMpKSBmeHNhdmU7 CisKKyAgICAgICAgaWYgKCBzdG9yZSApIHsKKyAgICAgICAgICAgIGNoYXIgbnVsbFs1MTJdIF9f YXR0cmlidXRlX18oKGFsaWduZWQoMTYpKSkgPSB7IDAgfTsKKyAgICAgICAgICAgIGFzbSB2b2xh dGlsZSgiIGZ4cnN0b3IgJTA7ICI6OiJtIigqbnVsbCkpOworICAgICAgICAgICAgYXNtIHZvbGF0 aWxlKCIgZnhyc3RvciAlMDsgIjo6Im0iKCpmeHNhdmUpKTsKKyAgICAgICAgfQorICAgICAgICAK KyAgICAgICAgYXNtIHZvbGF0aWxlKCAiZnhzYXZlICUwIiA6ICI9bSIgKCpmeHMpICk7CisKKyAg ICAgICAgaWYgKCBmeHMtPm14Y3NyX21hc2sgKQorICAgICAgICAgICAgbXhjc3JfbWFzayA9IGZ4 cy0+bXhjc3JfbWFzazsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbXhjc3JfbWFzayA9IDB4 MDAwZmZiZjsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHNldF9mcHVfc3RhdGUoY2hhciAqZnhz YXZlKQoreworICAgIF9zZXRfZnB1X3N0YXRlKGZ4c2F2ZSwgdHJ1ZSk7Cit9CisKK3N0YXRpYyB2 b2lkIHNhdmVfZnB1X3N0YXRlKGNoYXIgKmZ4c2F2ZSkKK3sKKyAgICBfc2V0X2ZwdV9zdGF0ZShm eHNhdmUsIGZhbHNlKTsKK30KKwogc3RhdGljIHZvaWQgc2V0dXBfZnB1X2V4Y2VwdGlvbl9oYW5k bGVyKHZvaWQpCiB7CiAgICAgLyogRklYTUUgLSBqdXN0IGRpc2FibGUgZXhjZXB0aW9ucyBmb3Ig bm93ICovCkBAIC03MzcsNiArNzgwLDE3IEBAIHN0YXRpYyB2b2lkIHNldHVwX3N0YXRlKHN0cnVj dCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogICAgICAgICAgICAgcHJpbnRmKCJTZXR0aW5nIGNw dV91c2VyX3JlZ3Mgb2Zmc2V0ICV4XG4iLCBvZmZzZXQpOwogICAgICAgICAgICAgY29udGludWU7 CiAgICAgICAgIH0KKyAgICAgICAgb2Zmc2V0IC09IHNpemVvZihzdHJ1Y3QgY3B1X3VzZXJfcmVn cyk7CisKKyAgICAgICAgLyogRnV6eiBmeHNhdmUgc3RhdGUgKi8KKyAgICAgICAgaWYgKCBvZmZz ZXQgPCAxMjggKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoICFkcmVhZChzLCBzLT5meHNh dmUgKyAob2Zmc2V0ICogNCksIDQpICkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg ICAgICBwcmludGYoIlNldHRpbmcgZnhzYXZlIG9mZnNldCAleFxuIiwgb2Zmc2V0ICogNCk7Cisg ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBvZmZzZXQgLT0gMTI4Owog CiAgICAgICAgIC8qIE5vbmUgb2YgdGhlIGFib3ZlIC0tIHRha2UgdGhhdCBhcyAic3RhcnQgZW11 bGF0aW5nIiAqLwogICAgICAgICAKQEAgLTg4Myw2ICs5MzcsOSBAQCBzdGF0aWMgdm9pZCBzYW5p dGl6ZV9zdGF0ZShzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKICAgICAgICAgcy0+c2Vn bWVudHNbeDg2X3NlZ19jc10uZGIgPSAwOwogICAgICAgICBzLT5zZWdtZW50c1t4ODZfc2VnX3Nz XS5kYiA9IDA7CiAgICAgfQorCisgICAgLyogU2V0dGluZyB0aGlzIHZhbHVlIHNlZW1zIHRvIGNh dXNlIGNyYXNoZXMgaW4gZnhyc3RvciAqLworICAgICooKHVuc2lnbmVkIGludCAqKShzLT5meHNh dmUpICsgNikgPSAwOwogfQogCiBpbnQgTExWTUZ1enplckluaXRpYWxpemUoaW50ICphcmdjLCBj aGFyICoqKmFyZ3YpCkBAIC05MjAsNiArOTc3LDggQEAgaW50IHJ1bnRlc3Qoc3RydWN0IGZ1enpf c3RhdGUgKnN0YXRlKSB7CiAKICAgICBkaXNhYmxlX2hvb2tzKHN0YXRlKTsKIAorICAgIHNldF9m cHVfc3RhdGUoc3RhdGUtPmZ4c2F2ZSk7CisKICAgICBkbyB7CiAgICAgICAgIC8qIEZJWE1FOiBV bnRpbCB3ZSBhY3R1YWxseSBpbXBsZW1lbnQgU0lHRlBFIGhhbmRsaW5nIHByb3Blcmx5ICovCiAg ICAgICAgIHNldHVwX2ZwdV9leGNlcHRpb25faGFuZGxlcigpOwpAQCAtOTMxLDYgKzk5MCw4IEBA IGludCBydW50ZXN0KHN0cnVjdCBmdXp6X3N0YXRlICpzdGF0ZSkgewogICAgICAgICBwcmludGYo IkVtdWxhdGlvbiByZXN1bHQ6ICVkXG4iLCByYyk7CiAgICAgfSB3aGlsZSAoIHJjID09IFg4NkVN VUxfT0tBWSApOwogCisgICAgc2F2ZV9mcHVfc3RhdGUoc3RhdGUtPmZ4c2F2ZSk7CisgICAgCiAg ICAgcmV0dXJuIDA7CiB9CiAKQEAgLTEwMDIsNiArMTA2MywxNiBAQCB2b2lkIGNvbXBhcmVfc3Rh dGVzKHN0cnVjdCBmdXp6X3N0YXRlIHN0YXRlWzJdKQogICAgICAgICBpZiAoIG1lbWNtcCgmc3Rh dGVbMF0ub3BzLCAmc3RhdGVbMV0ub3BzLCBzaXplb2Yoc3RhdGVbMF0ub3BzKSkgKQogICAgICAg ICAgICAgcHJpbnRmKCJvcHMgZGlmZmVyIVxuIik7CiAKKyAgICAgICAgaWYgKCBtZW1jbXAoJnN0 YXRlWzBdLmZ4c2F2ZSwgJnN0YXRlWzFdLmZ4c2F2ZSwgc2l6ZW9mKHN0YXRlWzBdLmZ4c2F2ZSkp ICkKKyAgICAgICAgeworICAgICAgICAgICAgcHJpbnRmKCJmeHNhdmUgZGlmZmVycyFcbiIpOwor ICAgICAgICAgICAgZm9yICggaSA9IDA7ICBpIDwgc2l6ZW9mKHN0YXRlWzBdLmZ4c2F2ZSkvc2l6 ZW9mKHVuc2lnbmVkKTsgaSsrICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwcmlu dGYoIlslMDRsdV0gJTA4eCAlMDh4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgaSAqIHNp emVvZih1bnNpZ25lZCksICgodW5zaWduZWQgKikmc3RhdGVbMF0uZnhzYXZlKVtpXSwgKCh1bnNp Z25lZCAqKSZzdGF0ZVsxXS5meHNhdmUpW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor CiAgICAgICAgIGlmICggbWVtY21wKCZzdGF0ZVswXS5jdHh0LCAmc3RhdGVbMV0uY3R4dCwgc2l6 ZW9mKHN0YXRlWzBdLmN0eHQpKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHByaW50ZigiY3R4 dCBkaWZmZXJzIVxuIik7Ci0tIAoyLjE0LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK