From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v3 07/12] fuzz/x86_emulate: Move all state into fuzz_state Date: Tue, 10 Oct 2017 17:20:06 +0100 Message-ID: <20171010162011.9629-7-george.dunlap@citrix.com> References: <20171010162011.9629-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 1e22ZL-00036c-2F for xen-devel@lists.xenproject.org; Tue, 10 Oct 2017 22:00:07 +0000 In-Reply-To: <20171010162011.9629-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 VGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgYWRkaW5nIHRoZSBvcHRpb24gZm9yIGEgbW9yZSAi Y29tcGFjdCIKaW50ZXJwcmV0YXRpb24gb2YgdGhlIGZ1enppbmcgZGF0YSwgaW4gd2hpY2ggd2Ug b25seSBjaGFuZ2Ugc2VsZWN0CmJpdHMgb2YgdGhlIHN0YXRlLgoKU2lnbmVkLW9mZi1ieTogR2Vv cmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgpBY2tlZC1ieTogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KdjM6CiAtIE1vdmUgREFUQV9PRkZTRVQgaW5zaWRl IHRoZSBzdHJ1Y3R1cmUKIC0gUmVtb3ZlIGEgc3RyYXkgYmxhbmsgbGluZQp2MjogUG9ydCBvdmVy IHByZXZpb3VzIGNoYW5nZXMKCkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AY2l0cml4LmNv bT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgotLS0KIHRvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5j IHwgODkgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ1IGluc2Vy dGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2Z1enoveDg2X2lu c3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jIGIvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rp b25fZW11bGF0b3IvZnV6ei1lbXVsLmMKaW5kZXggODk5OGYyMWZlMS4uMjBkNTJiMzNmOCAxMDA2 NDQKLS0tIGEvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMK KysrIGIvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKQEAg LTI0LDE0ICsyNCw4IEBACiAvKiBMYXlvdXQgb2YgZGF0YSBleHBlY3RlZCBhcyBmdXp6aW5nIGlu cHV0LiAqLwogc3RydWN0IGZ1enpfY29ycHVzCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBjcls1XTsK LSAgICB1aW50NjRfdCBtc3JbTVNSX0lOREVYX01BWF07Ci0gICAgc3RydWN0IGNwdV91c2VyX3Jl Z3MgcmVnczsKLSAgICBzdHJ1Y3Qgc2VnbWVudF9yZWdpc3RlciBzZWdtZW50c1tTRUdfTlVNXTsK LSAgICB1bnNpZ25lZCBsb25nIG9wdGlvbnM7CiAgICAgdW5zaWduZWQgY2hhciBkYXRhWzQwOTZd OwogfSBpbnB1dDsKLSNkZWZpbmUgREFUQV9PRkZTRVQgb2Zmc2V0b2Yoc3RydWN0IGZ1enpfY29y cHVzLCBkYXRhKQogCiAvKgogICogSW50ZXJuYWwgc3RhdGUgb2YgdGhlIGZ1enppbmcgaGFybmVz cy4gIENhbGN1bGF0ZWQgaW5pdGlhbGx5IGZyb20gdGhlIGlucHV0CkBAIC0zOSw3ICszMywxNCBA QCBzdHJ1Y3QgZnV6el9jb3JwdXMKICAqLwogc3RydWN0IGZ1enpfc3RhdGUKIHsKKyAgICB1bnNp Z25lZCBsb25nIG9wdGlvbnM7CisgICAgdW5zaWduZWQgbG9uZyBjcls1XTsKKyAgICB1aW50NjRf dCBtc3JbTVNSX0lOREVYX01BWF07CisgICAgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgc2VnbWVu dHNbU0VHX05VTV07CisgICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgcmVnczsKKwogICAgIC8qIEZ1 enplcidzIGlucHV0IGRhdGEuICovCisjZGVmaW5lIERBVEFfT0ZGU0VUIG9mZnNldG9mKHN0cnVj dCBmdXp6X3N0YXRlLCBjb3JwdXMpCiAgICAgc3RydWN0IGZ1enpfY29ycHVzICpjb3JwdXM7CiAK ICAgICAvKiBSZWFsIGFtb3VudCBvZiBkYXRhIGJhY2tpbmcgY29ycHVzLT5kYXRhW10uICovCkBA IC0zOTIsMTEgKzM5MywxMCBAQCBzdGF0aWMgaW50IGZ1enpfcmVhZF9zZWdtZW50KAogICAgIHN0 cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewogICAgIGNvbnN0IHN0cnVjdCBmdXp6X3N0 YXRlICpzID0gY3R4dC0+ZGF0YTsKLSAgICBjb25zdCBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBz LT5jb3JwdXM7CiAKICAgICBhc3NlcnQoaXNfeDg2X3VzZXJfc2VnbWVudChzZWcpIHx8IGlzX3g4 Nl9zeXN0ZW1fc2VnbWVudChzZWcpKTsKIAotICAgICpyZWcgPSBjLT5zZWdtZW50c1tzZWddOwor ICAgICpyZWcgPSBzLT5zZWdtZW50c1tzZWddOwogCiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsK IH0KQEAgLTQwNyw3ICs0MDcsNiBAQCBzdGF0aWMgaW50IGZ1enpfd3JpdGVfc2VnbWVudCgKICAg ICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsKICAgICBzdHJ1Y3QgZnV6el9zdGF0 ZSAqcyA9IGN0eHQtPmRhdGE7Ci0gICAgc3RydWN0IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVz OwogICAgIGludCByYzsKIAogICAgIGFzc2VydChpc194ODZfdXNlcl9zZWdtZW50KHNlZykgfHwg aXNfeDg2X3N5c3RlbV9zZWdtZW50KHNlZykpOwpAQCAtNDE1LDcgKzQxNCw3IEBAIHN0YXRpYyBp bnQgZnV6el93cml0ZV9zZWdtZW50KAogICAgIHJjID0gbWF5YmVfZmFpbChjdHh0LCAid3JpdGVf c2VnbWVudCIsIHRydWUpOwogCiAgICAgaWYgKCByYyA9PSBYODZFTVVMX09LQVkgKQotICAgICAg ICBjLT5zZWdtZW50c1tzZWddID0gKnJlZzsKKyAgICAgICAgcy0+c2VnbWVudHNbc2VnXSA9ICpy ZWc7CiAKICAgICByZXR1cm4gcmM7CiB9CkBAIC00MjYsMTIgKzQyNSwxMSBAQCBzdGF0aWMgaW50 IGZ1enpfcmVhZF9jcigKICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsKICAg ICBjb25zdCBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7Ci0gICAgY29uc3Qgc3Ry dWN0IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVzOwogCi0gICAgaWYgKCByZWcgPj0gQVJSQVlf U0laRShjLT5jcikgKQorICAgIGlmICggcmVnID49IEFSUkFZX1NJWkUocy0+Y3IpICkKICAgICAg ICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogCi0gICAgKnZhbCA9IGMtPmNyW3JlZ107 CisgICAgKnZhbCA9IHMtPmNyW3JlZ107CiAKICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwogfQpA QCAtNDQyLDE3ICs0NDAsMTYgQEAgc3RhdGljIGludCBmdXp6X3dyaXRlX2NyKAogICAgIHN0cnVj dCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewogICAgIHN0cnVjdCBmdXp6X3N0YXRlICpzID0g Y3R4dC0+ZGF0YTsKLSAgICBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7CiAgICAg aW50IHJjOwogCi0gICAgaWYgKCByZWcgPj0gQVJSQVlfU0laRShjLT5jcikgKQorICAgIGlmICgg cmVnID49IEFSUkFZX1NJWkUocy0+Y3IpICkKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5E TEVBQkxFOwogCiAgICAgcmMgPSBtYXliZV9mYWlsKGN0eHQsICJ3cml0ZV9jciIsIHRydWUpOwog ICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkKICAgICAgICAgcmV0dXJuIHJjOwogCi0gICAg Yy0+Y3JbcmVnXSA9IHZhbDsKKyAgICBzLT5jcltyZWddID0gdmFsOwogCiAgICAgcmV0dXJuIFg4 NkVNVUxfT0tBWTsKIH0KQEAgLTQ4Nyw3ICs0ODQsNiBAQCBzdGF0aWMgaW50IGZ1enpfcmVhZF9t c3IoCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiB7CiAgICAgY29uc3Qgc3Ry dWN0IGZ1enpfc3RhdGUgKnMgPSBjdHh0LT5kYXRhOwotICAgIGNvbnN0IHN0cnVjdCBmdXp6X2Nv cnB1cyAqYyA9IHMtPmNvcnB1czsKICAgICB1bnNpZ25lZCBpbnQgaWR4OwogCiAgICAgc3dpdGNo ICggcmVnICkKQEAgLTUwMSwxMCArNDk3LDEwIEBAIHN0YXRpYyBpbnQgZnV6el9yZWFkX21zcigK ICAgICAgICAgICovCiAgICAgICAgIHJldHVybiBkYXRhX3JlYWQoY3R4dCwgeDg2X3NlZ19ub25l LCAicmVhZF9tc3IiLCB2YWwsIHNpemVvZigqdmFsKSk7CiAgICAgY2FzZSBNU1JfRUZFUjoKLSAg ICAgICAgKnZhbCA9IGMtPm1zcltNU1JJX0VGRVJdOworICAgICAgICAqdmFsID0gcy0+bXNyW01T UklfRUZFUl07CiAgICAgICAgICp2YWwgJj0gfkVGRVJfTE1BOwotICAgICAgICBpZiAoICgqdmFs ICYgRUZFUl9MTUUpICYmIChjLT5jcls0XSAmIFg4Nl9DUjRfUEFFKSAmJgotICAgICAgICAgICAg IChjLT5jclswXSAmIFg4Nl9DUjBfUEcpICkKKyAgICAgICAgaWYgKCAoKnZhbCAmIEVGRVJfTE1F KSAmJiAocy0+Y3JbNF0gJiBYODZfQ1I0X1BBRSkgJiYKKyAgICAgICAgICAgICAocy0+Y3JbMF0g JiBYODZfQ1IwX1BHKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHByaW50ZigiU2V0dGluZyBF RkVSX0xNQVxuIik7CiAgICAgICAgICAgICAqdmFsIHw9IEVGRVJfTE1BOwpAQCAtNTE2LDcgKzUx Miw3IEBAIHN0YXRpYyBpbnQgZnV6el9yZWFkX21zcigKICAgICB7CiAgICAgICAgIGlmICggbXNy X2luZGV4W2lkeF0gPT0gcmVnICkKICAgICAgICAgewotICAgICAgICAgICAgKnZhbCA9IGMtPm1z cltpZHhdOworICAgICAgICAgICAgKnZhbCA9IHMtPm1zcltpZHhdOwogICAgICAgICAgICAgcmV0 dXJuIFg4NkVNVUxfT0tBWTsKICAgICAgICAgfQogICAgIH0KQEAgLTUzMSw3ICs1MjcsNiBAQCBz dGF0aWMgaW50IGZ1enpfd3JpdGVfbXNyKAogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpj dHh0KQogewogICAgIHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKLSAgICBzdHJ1 Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7CiAgICAgdW5zaWduZWQgaW50IGlkeDsKICAg ICBpbnQgcmM7CiAKQEAgLTU1MCw3ICs1NDUsNyBAQCBzdGF0aWMgaW50IGZ1enpfd3JpdGVfbXNy KAogICAgIHsKICAgICAgICAgaWYgKCBtc3JfaW5kZXhbaWR4XSA9PSByZWcgKQogICAgICAgICB7 Ci0gICAgICAgICAgICBjLT5tc3JbaWR4XSA9IHZhbDsKKyAgICAgICAgICAgIHMtPm1zcltpZHhd ID0gdmFsOwogICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKICAgICAgICAgfQogICAg IH0KQEAgLTYwMCwxNSArNTk1LDE0IEBAIHN0YXRpYyB2b2lkIHNldHVwX2ZwdV9leGNlcHRpb25f aGFuZGxlcih2b2lkKQogc3RhdGljIHZvaWQgZHVtcF9zdGF0ZShzdHJ1Y3QgeDg2X2VtdWxhdGVf Y3R4dCAqY3R4dCkKIHsKICAgICBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7Ci0g ICAgY29uc3Qgc3RydWN0IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVzOwogICAgIHN0cnVjdCBj cHVfdXNlcl9yZWdzICpyZWdzID0gY3R4dC0+cmVnczsKICAgICB1aW50NjRfdCB2YWwgPSAwOwog CiAgICAgcHJpbnRmKCIgLS0gU3RhdGUgLS0gXG4iKTsKICAgICBwcmludGYoImFkZHIgLyBzcCBz aXplOiAlZCAvICVkXG4iLCBjdHh0LT5hZGRyX3NpemUsIGN0eHQtPnNwX3NpemUpOwotICAgIHBy aW50ZigiIGNyMDogJWx4XG4iLCBjLT5jclswXSk7Ci0gICAgcHJpbnRmKCIgY3IzOiAlbHhcbiIs IGMtPmNyWzNdKTsKLSAgICBwcmludGYoIiBjcjQ6ICVseFxuIiwgYy0+Y3JbNF0pOworICAgIHBy aW50ZigiIGNyMDogJWx4XG4iLCBzLT5jclswXSk7CisgICAgcHJpbnRmKCIgY3IzOiAlbHhcbiIs IHMtPmNyWzNdKTsKKyAgICBwcmludGYoIiBjcjQ6ICVseFxuIiwgcy0+Y3JbNF0pOwogCiAgICAg cHJpbnRmKCIgcmlwOiAlIlBSSXg2NCJcbiIsIHJlZ3MtPnJpcCk7CiAKQEAgLTYyOSwxNSArNjIz LDEzIEBAIHN0YXRpYyBib29sIGxvbmdfbW9kZV9hY3RpdmUoc3RydWN0IHg4Nl9lbXVsYXRlX2N0 eHQgKmN0eHQpCiBzdGF0aWMgYm9vbCBpbl9sb25nbW9kZShzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4 dCAqY3R4dCkKIHsKICAgICBjb25zdCBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7 Ci0gICAgY29uc3Qgc3RydWN0IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVzOwogCi0gICAgcmV0 dXJuIGxvbmdfbW9kZV9hY3RpdmUoY3R4dCkgJiYgYy0+c2VnbWVudHNbeDg2X3NlZ19jc10ubDsK KyAgICByZXR1cm4gbG9uZ19tb2RlX2FjdGl2ZShjdHh0KSAmJiBzLT5zZWdtZW50c1t4ODZfc2Vn X2NzXS5sOwogfQogCiBzdGF0aWMgdm9pZCBzZXRfc2l6ZXMoc3RydWN0IHg4Nl9lbXVsYXRlX2N0 eHQgKmN0eHQpCiB7CiAgICAgc3RydWN0IGZ1enpfc3RhdGUgKnMgPSBjdHh0LT5kYXRhOwotICAg IGNvbnN0IHN0cnVjdCBmdXp6X2NvcnB1cyAqYyA9IHMtPmNvcnB1czsKIAogICAgIGN0eHQtPmxt YSA9IGxvbmdfbW9kZV9hY3RpdmUoY3R4dCk7CiAKQEAgLTY0NSwxMSArNjM3LDIwIEBAIHN0YXRp YyB2b2lkIHNldF9zaXplcyhzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKICAgICAgICAg Y3R4dC0+YWRkcl9zaXplID0gY3R4dC0+c3Bfc2l6ZSA9IDY0OwogICAgIGVsc2UKICAgICB7Ci0g ICAgICAgIGN0eHQtPmFkZHJfc2l6ZSA9IGMtPnNlZ21lbnRzW3g4Nl9zZWdfY3NdLmRiID8gMzIg OiAxNjsKLSAgICAgICAgY3R4dC0+c3Bfc2l6ZSAgID0gYy0+c2VnbWVudHNbeDg2X3NlZ19zc10u ZGIgPyAzMiA6IDE2OworICAgICAgICBjdHh0LT5hZGRyX3NpemUgPSBzLT5zZWdtZW50c1t4ODZf c2VnX2NzXS5kYiA/IDMyIDogMTY7CisgICAgICAgIGN0eHQtPnNwX3NpemUgICA9IHMtPnNlZ21l bnRzW3g4Nl9zZWdfc3NdLmRiID8gMzIgOiAxNjsKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIHNl dHVwX3N0YXRlKHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQoreworICAgIHN0cnVjdCBm dXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKKworICAgIC8qIEZ1enogYWxsIG9mIHRoZSBzdGF0 ZSBpbiBvbmUgZ28gKi8KKyAgICBpZiAoIWlucHV0X3JlYWQocywgcywgREFUQV9PRkZTRVQpKQor ICAgICAgICBleGl0KC0xKTsKK30KKwogI2RlZmluZSBDQU5PTklDQUxJWkUoeCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHVpbnQ2NF90IF95ID0gKHgp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtNzA5LDggKzcxMCw3IEBAIGVu dW0gewogc3RhdGljIHZvaWQgZGlzYWJsZV9ob29rcyhzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAq Y3R4dCkKIHsKICAgICBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7Ci0gICAgY29u c3Qgc3RydWN0IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVzOwotICAgIHVuc2lnbmVkIGxvbmcg Yml0bWFwID0gYy0+b3B0aW9uczsKKyAgICB1bnNpZ25lZCBsb25nIGJpdG1hcCA9IHMtPm9wdGlv bnM7CiAKICAgICAvKiBTZWUgYWxzbyBzYW5pdGl6ZV9pbnB1dCwgc29tZSBob29rcyBjYW4ndCBi ZSBkaXNhYmxlZC4gKi8KICAgICBNQVlCRV9ESVNBQkxFX0hPT0socmVhZCk7CkBAIC03NjAsMTIg Kzc2MCwxMSBAQCBzdGF0aWMgdm9pZCBkaXNhYmxlX2hvb2tzKHN0cnVjdCB4ODZfZW11bGF0ZV9j dHh0ICpjdHh0KQogc3RhdGljIHZvaWQgc2FuaXRpemVfaW5wdXQoc3RydWN0IHg4Nl9lbXVsYXRl X2N0eHQgKmN0eHQpCiB7CiAgICAgc3RydWN0IGZ1enpfc3RhdGUgKnMgPSBjdHh0LT5kYXRhOwot ICAgIHN0cnVjdCBmdXp6X2NvcnB1cyAqYyA9IHMtPmNvcnB1czsKLSAgICBzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncyA9ICZjLT5yZWdzOwotICAgIHVuc2lnbmVkIGxvbmcgYml0bWFwID0gYy0+ b3B0aW9uczsKKyAgICBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyA9IGN0eHQtPnJlZ3M7Cisg ICAgdW5zaWduZWQgbG9uZyBiaXRtYXAgPSBzLT5vcHRpb25zOwogCiAgICAgLyogU29tZSBob29r cyBjYW4ndCBiZSBkaXNhYmxlZC4gKi8KLSAgICBjLT5vcHRpb25zICY9IH4oKDE8PEhPT0tfcmVh ZCl8KDE8PEhPT0tfaW5zbl9mZXRjaCkpOworICAgIHMtPm9wdGlvbnMgJj0gfigoMTw8SE9PS19y ZWFkKXwoMTw8SE9PS19pbnNuX2ZldGNoKSk7CiAKICAgICAvKiBaZXJvICdwcml2YXRlJyBlbnRy aWVzICovCiAgICAgcmVncy0+ZXJyb3JfY29kZSA9IDA7CkBAIC03NzksOCArNzc4LDggQEAgc3Rh dGljIHZvaWQgc2FuaXRpemVfaW5wdXQoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiAg ICAgICogQ1IwLlBHIGNhbid0IGJlIHNldCBpZiBDUjAuUEUgaXNuJ3Qgc2V0LiAgU2V0IGlzIG1v cmUgaW50ZXJlc3RpbmcsIHNvCiAgICAgICogc2V0IFBFIGlmIFBHIGlzIHNldC4KICAgICAgKi8K LSAgICBpZiAoIGMtPmNyWzBdICYgWDg2X0NSMF9QRyApCi0gICAgICAgIGMtPmNyWzBdIHw9IFg4 Nl9DUjBfUEU7CisgICAgaWYgKCBzLT5jclswXSAmIFg4Nl9DUjBfUEcgKQorICAgICAgICBzLT5j clswXSB8PSBYODZfQ1IwX1BFOwogCiAgICAgLyogRUZMQUdTLlZNIG5vdCBhdmFpbGFibGUgaW4g bG9uZyBtb2RlICovCiAgICAgaWYgKCBsb25nX21vZGVfYWN0aXZlKGN0eHQpICkKQEAgLTc4OSw4 ICs3ODgsOCBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9pbnB1dChzdHJ1Y3QgeDg2X2VtdWxhdGVf Y3R4dCAqY3R4dCkKICAgICAvKiBFRkxBR1MuVk0gaW1wbGllcyAxNi1iaXQgbW9kZSAqLwogICAg IGlmICggcmVncy0+cmZsYWdzICYgWDg2X0VGTEFHU19WTSApCiAgICAgewotICAgICAgICBjLT5z ZWdtZW50c1t4ODZfc2VnX2NzXS5kYiA9IDA7Ci0gICAgICAgIGMtPnNlZ21lbnRzW3g4Nl9zZWdf c3NdLmRiID0gMDsKKyAgICAgICAgcy0+c2VnbWVudHNbeDg2X3NlZ19jc10uZGIgPSAwOworICAg ICAgICBzLT5zZWdtZW50c1t4ODZfc2VnX3NzXS5kYiA9IDA7CiAgICAgfQogfQogCkBAIC04MTIs NyArODExLDcgQEAgaW50IExMVk1GdXp6ZXJUZXN0T25lSW5wdXQoY29uc3QgdWludDhfdCAqZGF0 YV9wLCBzaXplX3Qgc2l6ZSkKICAgICB9OwogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0IGN0 eHQgPSB7CiAgICAgICAgIC5kYXRhID0gJnN0YXRlLAotICAgICAgICAucmVncyA9ICZpbnB1dC5y ZWdzLAorICAgICAgICAucmVncyA9ICZzdGF0ZS5yZWdzLAogICAgICAgICAuYWRkcl9zaXplID0g OCAqIHNpemVvZih2b2lkICopLAogICAgICAgICAuc3Bfc2l6ZSA9IDggKiBzaXplb2Yodm9pZCAq KSwKICAgICB9OwpAQCAtODM2LDcgKzgzNSw5IEBAIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0 KGNvbnN0IHVpbnQ4X3QgKmRhdGFfcCwgc2l6ZV90IHNpemUpCiAgICAgbWVtY3B5KCZpbnB1dCwg ZGF0YV9wLCBzaXplKTsKIAogICAgIHN0YXRlLmNvcnB1cyA9ICZpbnB1dDsKLSAgICBzdGF0ZS5k YXRhX251bSA9IHNpemUgLSBEQVRBX09GRlNFVDsKKyAgICBzdGF0ZS5kYXRhX251bSA9IHNpemU7 CisKKyAgICBzZXR1cF9zdGF0ZSgmY3R4dCk7CiAKICAgICBzYW5pdGl6ZV9pbnB1dCgmY3R4dCk7 CiAKLS0gCjIuMTQuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=