From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v4 11/12] fuzz/x86_emulate: Set and fuzz more CPU state Date: Wed, 11 Oct 2017 18:52:42 +0100 Message-ID: <20171011175243.19871-11-george.dunlap@citrix.com> References: <20171011175243.19871-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e2LGv-00022b-Hf for xen-devel@lists.xenproject.org; Wed, 11 Oct 2017 17:58:21 +0000 In-Reply-To: <20171011175243.19871-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 bnB1dC4KClRoZSBJbnRlbCBtYW51YWwgY2xhaW1zIHRoYXQsICJJZiBbY2VydGFpbiBDUFVJRCBi aXRzXSBhcmUgc2V0LCB0aGUKcHJvY2Vzc29yIGRlcHJlY2F0ZXMgRkNTIGFuZCBGRFMsIGFuZCB0 aGUgZmllbGQgaXMgc2F2ZWQgYXMgMDAwMGgiOwpidXQgZXhwZXJpbWVudGFsbHkgaXQgd291bGQg YmUgbW9yZSBhY2N1cmF0ZSB0byBzYXksICJ0aGUgZmllbGQgaXMKb2NjYXNpb25hbGx5IHNhdmVk IGFzIDAwMDBoIi4gIFRoaXMgY2F1c2VzIHRoZSAtLXJlcnVuIGNoZWNraW5nIHRvCnRyaXAgbm9u LWRldGVybWluaXN0aWNhbGx5LiAgU2FuaXRpemUgdGhlbSB0byB6ZXJvLgoKU2lnbmVkLW9mZi1i eTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgotLS0KdjQ6Ci0gUmVt b3ZlIGluZWZmZWN0aXZlIGZ4cnN0b3IKLSBTYW5pdGl6ZSBmY3MgYW5kIGZkcyBlbGVtZW50cwp2 MzoKLSBNYWtlIHR5cGUgNTEyIGJ5dGVzIHJhdGhlciB0aGFuIDQ2NAotIFN0eWxlIGNoYW5nZXMK LSBDaGFuZ2UgYXJndW1lbnQgZnJvbSAnc3RvcmUnIHRvICd3cml0ZScKLSBBZGQgYSBjb21tZW50 IGV4cGxhaW5pbmcgd2h5IHdlIGFsd2F5cyAnc2F2ZScgZXZlbiBmb3IgYSB3cml0ZQotIFNhbml0 aXplIG14Y3NyIHdpdGggbXhjcnNfbWFzayB3aGVuIHdyaXRpbmcgaW5zdGVhZCBvZiB6ZXJvaW5n IGl0IGluIHNhbml0aXplX3N0YXRlCi0gR2V0IHJpZCBvZiByZWR1bmRhbnQgbXhjc3JfbWFzayBz ZXR0aW5nCi0gQWRkIGNvbW1lbnRzIGV4cGxhaW5pbmcgd2h5IHdlJ3JlIGFyYml0cmFyaWx5IHdy aXRpbmcgMzIgYml0cwp2MjogUmViYXNlIG9uIHRvcCBvZiBwcmV2aW91cyBjaGFuZ2VzCgpDQzog SWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGNpdHJpeC5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1 MkBjaXRyaXguY29tPgpDQzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KQ0M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCiB0b29scy9mdXp6L3g4 Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYyB8IDEwMiArKysrKysrKysrKysrKysr KysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enot ZW11bC5jIGIvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMK aW5kZXggZjE2MjFmOThkYS4uODgxYzRkMDNjMSAxMDA2NDQKLS0tIGEvdG9vbHMvZnV6ei94ODZf aW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKKysrIGIvdG9vbHMvZnV6ei94ODZfaW5z dHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKQEAgLTM2LDYgKzM2LDcgQEAgc3RydWN0IGZ1 enpfc3RhdGUKICAgICB1aW50NjRfdCBtc3JbTVNSX0lOREVYX01BWF07CiAgICAgc3RydWN0IHNl Z21lbnRfcmVnaXN0ZXIgc2VnbWVudHNbU0VHX05VTV07CiAgICAgc3RydWN0IGNwdV91c2VyX3Jl Z3MgcmVnczsKKyAgICBjaGFyIGZ4c2F2ZVs1MTJdIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMTYp KSk7CiAKICAgICAvKiBGdXp6ZXIncyBpbnB1dCBkYXRhLiAqLwogI2RlZmluZSBEQVRBX1NJWkVf RlVMTCBvZmZzZXRvZihzdHJ1Y3QgZnV6el9zdGF0ZSwgY29ycHVzKQpAQCAtNTk0LDYgKzU5NSw3 NSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyBhbGxfZnV6emVyX29wcyA9 IHsKIH07CiAjdW5kZWYgU0VUCiAKKy8qCisgKiBUaGlzIGZ1bmNpdG9uIHdpbGwgcmVhZCBvciB3 cml0ZSBmeHNhdmUgdG8gdGhlIGZwdS4gIFdoZW4gd3JpdGluZywKKyAqIGl0ICdzYW5pdGl6ZXMn IHRoZSBzdGF0ZTogSXQgd2lsbCBtYXNrIG9mZiB0aGUgYXBwcm9wcmlhdGUgYml0cyBpbgorICog dGhlIG14Y3NyLCAncmVzdG9yZScgdGhlIHN0YXRlIHRvIHRoZSBmcHUsIHRoZW4gJ3NhdmUnIGl0 IGFnYWluIHNvCisgKiB0aGF0IHRoZSBkYXRhIGluIGZ4c2F2ZSByZWZsZWN0cyB3aGF0J3MgYWN0 dWFsbHkgaW4gdGhlIEZQVS4KKyAqCisgKiBUT0RPOiBFeHRlbmQgc3RhdGUgYmV5b25kIGp1c3Qg RlBVICh5bW0gcmVnaXN0ZXJzLCAmYykKKyAqLworc3RhdGljIHZvaWQgX3NldF9mcHVfc3RhdGUo Y2hhciAqZnhzYXZlLCBib29sIHdyaXRlKQoreworICAgIGlmICggY3B1X2hhc19meHNyICkKKyAg ICB7CisgICAgICAgIHN0YXRpYyB1bmlvbiBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikp KSB7CisgICAgICAgICAgICBjaGFyIHhbNTEyXTsKKyAgICAgICAgICAgIHN0cnVjdCB7CisgICAg ICAgICAgICAgICAgdWludDE2X3QgY3csIHN3OworICAgICAgICAgICAgICAgIHVpbnQ4X3QgIHR3 LCBfcnN2ZDE7CisgICAgICAgICAgICAgICAgdWludDE2X3Qgb3A7CisgICAgICAgICAgICAgICAg dWludDMyX3QgaXA7CisgICAgICAgICAgICAgICAgdWludDE2X3QgY3MsIF9yc3ZkMjsKKyAgICAg ICAgICAgICAgICB1aW50MzJfdCBkcDsKKyAgICAgICAgICAgICAgICB1aW50MTZfdCBkcywgX3Jz dmQzOworICAgICAgICAgICAgICAgIHVpbnQzMl90IG14Y3NyOworICAgICAgICAgICAgICAgIHVp bnQzMl90IG14Y3NyX21hc2s7CisgICAgICAgICAgICAgICAgLyogLi4uICovCisgICAgICAgICAg ICB9OworICAgICAgICB9ICpmeHM7CisKKyAgICAgICAgZnhzID0gKHR5cGVvZihmeHMpKWZ4c2F2 ZTsKKworICAgICAgICBpZiAoIHdyaXRlICkKKyAgICAgICAgeworICAgICAgICAgICAgLyogCisg ICAgICAgICAgICAgKiBDbGVhciByZXNlcnZlZCBiaXRzIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBn ZXQgYW55CisgICAgICAgICAgICAgKiBleGNlcHRpb25zCisgICAgICAgICAgICAgKi8KKyAgICAg ICAgICAgIGZ4cy0+bXhjc3IgJj0gbXhjc3JfbWFzazsKKworICAgICAgICAgICAgLyoKKyAgICAg ICAgICAgICAqIFRoZSBJbnRlbCBtYW51YWwgc2F5cyB0aGF0IG9uIG5ld2VyIG1vZGVscyBDUy9E UyBhcmUKKyAgICAgICAgICAgICAqIGRlcHJlY2F0ZWQgYW5kIHRoYXQgdGhlc2UgZmllbGRzICJh cmUgc2F2ZWQgYXMgMDAwMGgiLgorICAgICAgICAgICAgICogRXhwZXJpbWVudGFsbHksIGhvd2V2 ZXIsIGF0IGxlYXN0IG9uIG15IHRlc3QgYm94LAorICAgICAgICAgICAgICogd2hldGhlciB0aGlz IHNhdmVkIGFzIDAwMDBoIG9yIGFzIHRoZSBwcmV2aW91c2x5CisgICAgICAgICAgICAgKiB3cml0 dGVuIHZhbHVlIGlzIHJhbmRvbTsgbWVhbmluZyB0aGF0IHdoZW4gcnVuIHdpdGgKKyAgICAgICAg ICAgICAqIC0tcmVydW4sIHdlIG9jY2FzaW9uYWxseSBkZXRlY3QgYSAic3RhdGUgbWlzbWF0Y2gi IGluIHRoZXNlCisgICAgICAgICAgICAgKiBieXRlcy4gIEluc3RlYWQsIHNpbXBseSBzYW5pdGl6 ZSB0aGVtIHRvIHplcm8uCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogVE9ETyBDaGVj ayBDUFVJRCBhcyBzcGVjaWZpZWQgaW4gdGhlIG1hbnVhbCBiZWZvcmUKKyAgICAgICAgICAgICAq IGNsZWFyaW5nCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGZ4cy0+Y3MgPSBmeHMtPmRz ID0gMDsKKworICAgICAgICAgICAgYXNtIHZvbGF0aWxlKCAiZnhyc3RvciAlMCIgOjogIm0iICgq ZnhzKSApOworICAgICAgICB9CisKKyAgICAgICAgYXNtIHZvbGF0aWxlKCAiZnhzYXZlICUwIiA6 ICI9bSIgKCpmeHMpICk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBzZXRfZnB1X3N0YXRlKGNo YXIgKmZ4c2F2ZSkKK3sKKyAgICBfc2V0X2ZwdV9zdGF0ZShmeHNhdmUsIHRydWUpOworfQorCitz dGF0aWMgdm9pZCBzYXZlX2ZwdV9zdGF0ZShjaGFyICpmeHNhdmUpCit7CisgICAgX3NldF9mcHVf c3RhdGUoZnhzYXZlLCBmYWxzZSk7Cit9CisKIHN0YXRpYyB2b2lkIHNldHVwX2ZwdV9leGNlcHRp b25faGFuZGxlcih2b2lkKQogewogICAgIC8qIEZJWE1FIC0ganVzdCBkaXNhYmxlIGV4Y2VwdGlv bnMgZm9yIG5vdyAqLwpAQCAtNjY5LDcgKzczOSwxMSBAQCBzdGF0aWMgdm9pZCBzZXR1cF9zdGF0 ZShzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKICAgICAgICAgcmV0dXJuOwogICAgIH0K IAotICAgIC8qIE1vZGlmeSBvbmx5IHNlbGVjdCBiaXRzIG9mIHN0YXRlICovCisgICAgLyoKKyAg ICAgKiBNb2RpZnkgb25seSBzZWxlY3QgYml0cyBvZiBzdGF0ZS4gIEluIGdlbmVyYWwsIHRyeSBu b3QgdG8gZnV6eiBsZXNzCisgICAgICogdGhhbiAzMiBiaXRzIGF0IGEgdGltZTsgb3RoZXJ3aXNl IHdlJ3JlIHJlYWRpbmcgMiBieXRlcyBpbiBvcmRlciB0byBmdXp6IG9ubHkKKyAgICAgKiBvbmUg Ynl0ZS4gCisgICAgICovCiAKICAgICAvKiBBbHdheXMgcmVhZCAnb3B0aW9ucycgKi8KICAgICBp ZiAoICFpbnB1dF9yZWFkKHMsIHMsIERBVEFfU0laRV9DT01QQUNUKSApCkBAIC03MzIsNiArODA2 LDE4IEBAIHN0YXRpYyB2b2lkIHNldHVwX3N0YXRlKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpj dHh0KQogICAgICAgICAgICAgcHJpbnRmKCJTZXR0aW5nIGNwdV91c2VyX3JlZ3Mgb2Zmc2V0ICV4 XG4iLCBvZmZzZXQpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KKyAgICAgICAg b2Zmc2V0IC09IHNpemVvZihzdHJ1Y3QgY3B1X3VzZXJfcmVncyk7CisKKyAgICAgICAgLyogRnV6 eiBmeHNhdmUgc3RhdGUgKi8KKyAgICAgICAgaWYgKCBvZmZzZXQgPCBzaXplb2Yocy0+ZnhzYXZl KSAvIDQgKQorICAgICAgICB7CisgICAgICAgICAgICAvKiAzMi1iaXQgc2l6ZSBpcyBhcmJpdHJh cnk7IHNlZSBjb21tZW50IGFib3ZlICovCisgICAgICAgICAgICBpZiAoICFpbnB1dF9yZWFkKHMs IHMtPmZ4c2F2ZSArIChvZmZzZXQgKiA0KSwgNCkgKQorICAgICAgICAgICAgICAgIHJldHVybjsK KyAgICAgICAgICAgIHByaW50ZigiU2V0dGluZyBmeHNhdmUgb2Zmc2V0ICV4XG4iLCBvZmZzZXQg KiA0KTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIG9mZnNldCAt PSAxMjg7CiAKICAgICAgICAgLyogTm9uZSBvZiB0aGUgYWJvdmUgLS0gdGFrZSB0aGF0IGFzICJz dGFydCBlbXVsYXRpbmciICovCiAgICAgICAgIApAQCAtOTE0LDYgKzEwMDAsOCBAQCBzdGF0aWMg aW50IHJ1bnRlc3Qoc3RydWN0IGZ1enpfc3RhdGUgKnN0YXRlKSB7CiAKICAgICBkaXNhYmxlX2hv b2tzKHN0YXRlKTsKIAorICAgIHNldF9mcHVfc3RhdGUoc3RhdGUtPmZ4c2F2ZSk7CisKICAgICBk byB7CiAgICAgICAgIC8qIEZJWE1FOiBVbnRpbCB3ZSBhY3R1YWxseSBpbXBsZW1lbnQgU0lHRlBF IGhhbmRsaW5nIHByb3Blcmx5ICovCiAgICAgICAgIHNldHVwX2ZwdV9leGNlcHRpb25faGFuZGxl cigpOwpAQCAtOTI1LDYgKzEwMTMsOCBAQCBzdGF0aWMgaW50IHJ1bnRlc3Qoc3RydWN0IGZ1enpf c3RhdGUgKnN0YXRlKSB7CiAgICAgICAgIHByaW50ZigiRW11bGF0aW9uIHJlc3VsdDogJWRcbiIs IHJjKTsKICAgICB9IHdoaWxlICggcmMgPT0gWDg2RU1VTF9PS0FZICk7CiAKKyAgICBzYXZlX2Zw dV9zdGF0ZShzdGF0ZS0+ZnhzYXZlKTsKKyAgICAKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTAw OCw2ICsxMDk4LDE2IEBAIHN0YXRpYyB2b2lkIGNvbXBhcmVfc3RhdGVzKHN0cnVjdCBmdXp6X3N0 YXRlIHN0YXRlWzJdKQogICAgICAgICBpZiAoIG1lbWNtcCgmc3RhdGVbMF0ub3BzLCAmc3RhdGVb MV0ub3BzLCBzaXplb2Yoc3RhdGVbMF0ub3BzKSkgKQogICAgICAgICAgICAgcHJpbnRmKCJvcHMg ZGlmZmVyIVxuIik7CiAKKyAgICAgICAgaWYgKCBtZW1jbXAoJnN0YXRlWzBdLmZ4c2F2ZSwgJnN0 YXRlWzFdLmZ4c2F2ZSwgc2l6ZW9mKHN0YXRlWzBdLmZ4c2F2ZSkpICkKKyAgICAgICAgeworICAg ICAgICAgICAgcHJpbnRmKCJmeHNhdmUgZGlmZmVycyFcbiIpOworICAgICAgICAgICAgZm9yICgg aSA9IDA7ICBpIDwgc2l6ZW9mKHN0YXRlWzBdLmZ4c2F2ZSkvc2l6ZW9mKHVuc2lnbmVkKTsgaSsr ICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwcmludGYoIlslMDRsdV0gJTA4eCAl MDh4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgaSAqIHNpemVvZih1bnNpZ25lZCksICgo dW5zaWduZWQgKikmc3RhdGVbMF0uZnhzYXZlKVtpXSwgKCh1bnNpZ25lZCAqKSZzdGF0ZVsxXS5m eHNhdmUpW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIGlmICggbWVt Y21wKCZzdGF0ZVswXS5jdHh0LCAmc3RhdGVbMV0uY3R4dCwgc2l6ZW9mKHN0YXRlWzBdLmN0eHQp KSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHByaW50ZigiY3R4dCBkaWZmZXJzIVxuIik7Ci0t IAoyLjE0LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK