From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH 10/14] fuzz/x86_emulate: Move all state into fuzz_state Date: Fri, 25 Aug 2017 17:43:39 +0100 Message-ID: <20170825164343.29015-10-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dlHi4-0004wb-HQ for xen-devel@lists.xenproject.org; Fri, 25 Aug 2017 16:43:52 +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: George Dunlap List-Id: xen-devel@lists.xenproject.org VGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgYWRkaW5nIHRoZSBvcHRpb24gZm9yIGEgbW9yZSAi Y29tcGFjdCIKaW50ZXJwcmV0YXRpb24gb2YgdGhlIGZ1enppbmcgZGF0YSwgaW4gd2hpY2ggd2Ug b25seSBjaGFuZ2Ugc2VsZWN0CmJpdHMgb2YgdGhlIHN0YXRlLgoKU2lnbmVkLW9mZi1ieTogR2Vv cmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgotLS0KIHRvb2xzL2Z1enoveDg2 X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jIHwgOTAgKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enot ZW11bC5jIGIvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMK aW5kZXggNzQ2ZTc5ODlhZi4uODlkMTcxNDEyNSAxMDA2NDQKLS0tIGEvdG9vbHMvZnV6ei94ODZf aW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKKysrIGIvdG9vbHMvZnV6ei94ODZfaW5z dHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKQEAgLTI0LDE0ICsyNCw4IEBACiAvKiBMYXlv dXQgb2YgZGF0YSBleHBlY3RlZCBhcyBmdXp6aW5nIGlucHV0LiAqLwogc3RydWN0IGZ1enpfY29y cHVzCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBjcls1XTsKLSAgICB1aW50NjRfdCBtc3JbTVNSX0lO REVYX01BWF07Ci0gICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgcmVnczsKLSAgICBzdHJ1Y3Qgc2Vn bWVudF9yZWdpc3RlciBzZWdtZW50c1tTRUdfTlVNXTsKLSAgICB1bnNpZ25lZCBsb25nIG9wdGlv bnM7CiAgICAgdW5zaWduZWQgY2hhciBkYXRhWzQwOTZdOwogfSBpbnB1dDsKLSNkZWZpbmUgREFU QV9PRkZTRVQgb2Zmc2V0b2Yoc3RydWN0IGZ1enpfY29ycHVzLCBkYXRhKQogCiAvKgogICogSW50 ZXJuYWwgc3RhdGUgb2YgdGhlIGZ1enppbmcgaGFybmVzcy4gIENhbGN1bGF0ZWQgaW5pdGlhbGx5 IGZyb20gdGhlIGlucHV0CkBAIC0zOSw2ICszMywxMiBAQCBzdHJ1Y3QgZnV6el9jb3JwdXMKICAq Lwogc3RydWN0IGZ1enpfc3RhdGUKIHsKKyAgICB1bnNpZ25lZCBsb25nIG9wdGlvbnM7CisgICAg dW5zaWduZWQgbG9uZyBjcls1XTsKKyAgICB1aW50NjRfdCBtc3JbTVNSX0lOREVYX01BWF07Cisg ICAgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgc2VnbWVudHNbU0VHX05VTV07CisgICAgc3RydWN0 IGNwdV91c2VyX3JlZ3MgcmVnczsKKwogICAgIC8qIEZ1enplcidzIGlucHV0IGRhdGEuICovCiAg ICAgc3RydWN0IGZ1enpfY29ycHVzICpjb3JwdXM7CiAKQEAgLTUxLDYgKzUxLDggQEAgc3RydWN0 IGZ1enpfc3RhdGUKICAgICAvKiBFbXVsYXRpb24gb3BzLCBzb21lIG9mIHdoaWNoIGFyZSBkaXNh YmxlZCBiYXNlZCBvbiBjb3JwdXMtPm9wdGlvbnMuICovCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRl X29wcyBvcHM7CiB9OworI2RlZmluZSBEQVRBX09GRlNFVCBvZmZzZXRvZihzdHJ1Y3QgZnV6el9z dGF0ZSwgY29ycHVzKQorCiAKIHN0YXRpYyBpbmxpbmUgaW50IGRhdmFpbChzdHJ1Y3QgZnV6el9z dGF0ZSAqcywgc2l6ZV90IHNpemUpCiB7CkBAIC0zOTIsMTEgKzM5NCwxMCBAQCBzdGF0aWMgaW50 IGZ1enpfcmVhZF9zZWdtZW50KAogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQog ewogICAgIGNvbnN0IHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKLSAgICBjb25z dCBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7CiAKICAgICBhc3NlcnQoaXNfeDg2 X3VzZXJfc2VnbWVudChzZWcpIHx8IGlzX3g4Nl9zeXN0ZW1fc2VnbWVudChzZWcpKTsKIAotICAg ICpyZWcgPSBjLT5zZWdtZW50c1tzZWddOworICAgICpyZWcgPSBzLT5zZWdtZW50c1tzZWddOwog CiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKIH0KQEAgLTQwNyw3ICs0MDgsNiBAQCBzdGF0aWMg aW50IGZ1enpfd3JpdGVfc2VnbWVudCgKICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4 dCkKIHsKICAgICBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7Ci0gICAgc3RydWN0 IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVzOwogICAgIGludCByYzsKIAogICAgIGFzc2VydChp c194ODZfdXNlcl9zZWdtZW50KHNlZykgfHwgaXNfeDg2X3N5c3RlbV9zZWdtZW50KHNlZykpOwpA QCAtNDE1LDcgKzQxNSw3IEBAIHN0YXRpYyBpbnQgZnV6el93cml0ZV9zZWdtZW50KAogICAgIHJj ID0gbWF5YmVfZmFpbChjdHh0LCAid3JpdGVfc2VnbWVudCIsIHRydWUpOwogCiAgICAgaWYgKCBy YyA9PSBYODZFTVVMX09LQVkgKQotICAgICAgICBjLT5zZWdtZW50c1tzZWddID0gKnJlZzsKKyAg ICAgICAgcy0+c2VnbWVudHNbc2VnXSA9ICpyZWc7CiAKICAgICByZXR1cm4gcmM7CiB9CkBAIC00 MjYsMTIgKzQyNiwxMSBAQCBzdGF0aWMgaW50IGZ1enpfcmVhZF9jcigKICAgICBzdHJ1Y3QgeDg2 X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsKICAgICBjb25zdCBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9 IGN0eHQtPmRhdGE7Ci0gICAgY29uc3Qgc3RydWN0IGZ1enpfY29ycHVzICpjID0gcy0+Y29ycHVz OwogCi0gICAgaWYgKCByZWcgPj0gQVJSQVlfU0laRShjLT5jcikgKQorICAgIGlmICggcmVnID49 IEFSUkFZX1NJWkUocy0+Y3IpICkKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxF OwogCi0gICAgKnZhbCA9IGMtPmNyW3JlZ107CisgICAgKnZhbCA9IHMtPmNyW3JlZ107CiAKICAg ICByZXR1cm4gWDg2RU1VTF9PS0FZOwogfQpAQCAtNDQyLDE3ICs0NDEsMTYgQEAgc3RhdGljIGlu dCBmdXp6X3dyaXRlX2NyKAogICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewog ICAgIHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKLSAgICBzdHJ1Y3QgZnV6el9j b3JwdXMgKmMgPSBzLT5jb3JwdXM7CiAgICAgaW50IHJjOwogCi0gICAgaWYgKCByZWcgPj0gQVJS QVlfU0laRShjLT5jcikgKQorICAgIGlmICggcmVnID49IEFSUkFZX1NJWkUocy0+Y3IpICkKICAg ICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogCiAgICAgcmMgPSBtYXliZV9mYWls KGN0eHQsICJ3cml0ZV9jciIsIHRydWUpOwogICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkK ICAgICAgICAgcmV0dXJuIHJjOwogCi0gICAgYy0+Y3JbcmVnXSA9IHZhbDsKKyAgICBzLT5jclty ZWddID0gdmFsOwogCiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKIH0KQEAgLTQ4Nyw3ICs0ODUs NiBAQCBzdGF0aWMgaW50IGZ1enpfcmVhZF9tc3IoCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0 eHQgKmN0eHQpCiB7CiAgICAgY29uc3Qgc3RydWN0IGZ1enpfc3RhdGUgKnMgPSBjdHh0LT5kYXRh OwotICAgIGNvbnN0IHN0cnVjdCBmdXp6X2NvcnB1cyAqYyA9IHMtPmNvcnB1czsKICAgICB1bnNp Z25lZCBpbnQgaWR4OwogCiAgICAgc3dpdGNoICggcmVnICkKQEAgLTUwMSwxMCArNDk4LDEwIEBA IHN0YXRpYyBpbnQgZnV6el9yZWFkX21zcigKICAgICAgICAgICovCiAgICAgICAgIHJldHVybiBk YXRhX3JlYWQoY3R4dCwgeDg2X3NlZ19ub25lLCAicmVhZF9tc3IiLCB2YWwsIHNpemVvZigqdmFs KSk7CiAgICAgY2FzZSBNU1JfRUZFUjoKLSAgICAgICAgKnZhbCA9IGMtPm1zcltNU1JJX0VGRVJd OworICAgICAgICAqdmFsID0gcy0+bXNyW01TUklfRUZFUl07CiAgICAgICAgICp2YWwgJj0gfkVG RVJfTE1BOwotICAgICAgICBpZiAoICgqdmFsICYgRUZFUl9MTUUpICYmIChjLT5jcls0XSAmIFg4 Nl9DUjRfUEFFKSAmJgotICAgICAgICAgICAgIChjLT5jclswXSAmIFg4Nl9DUjBfUEcpICkKKyAg ICAgICAgaWYgKCAoKnZhbCAmIEVGRVJfTE1FKSAmJiAocy0+Y3JbNF0gJiBYODZfQ1I0X1BBRSkg JiYKKyAgICAgICAgICAgICAocy0+Y3JbMF0gJiBYODZfQ1IwX1BHKSApCiAgICAgICAgIHsKICAg ICAgICAgICAgIHByaW50ZigiU2V0dGluZyBFRkVSX0xNQVxuIik7CiAgICAgICAgICAgICAqdmFs IHw9IEVGRVJfTE1BOwpAQCAtNTE2LDcgKzUxMyw3IEBAIHN0YXRpYyBpbnQgZnV6el9yZWFkX21z cigKICAgICB7CiAgICAgICAgIGlmICggbXNyX2luZGV4W2lkeF0gPT0gcmVnICkKICAgICAgICAg ewotICAgICAgICAgICAgKnZhbCA9IGMtPm1zcltpZHhdOworICAgICAgICAgICAgKnZhbCA9IHMt Pm1zcltpZHhdOwogICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKICAgICAgICAgfQog ICAgIH0KQEAgLTUzMSw3ICs1MjgsNiBAQCBzdGF0aWMgaW50IGZ1enpfd3JpdGVfbXNyKAogICAg IHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewogICAgIHN0cnVjdCBmdXp6X3N0YXRl ICpzID0gY3R4dC0+ZGF0YTsKLSAgICBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7 CiAgICAgdW5zaWduZWQgaW50IGlkeDsKICAgICBpbnQgcmM7CiAKQEAgLTU1MCw3ICs1NDYsNyBA QCBzdGF0aWMgaW50IGZ1enpfd3JpdGVfbXNyKAogICAgIHsKICAgICAgICAgaWYgKCBtc3JfaW5k ZXhbaWR4XSA9PSByZWcgKQogICAgICAgICB7Ci0gICAgICAgICAgICBjLT5tc3JbaWR4XSA9IHZh bDsKKyAgICAgICAgICAgIHMtPm1zcltpZHhdID0gdmFsOwogICAgICAgICAgICAgcmV0dXJuIFg4 NkVNVUxfT0tBWTsKICAgICAgICAgfQogICAgIH0KQEAgLTYwMCwxNSArNTk2LDE0IEBAIHN0YXRp YyB2b2lkIHNldHVwX2ZwdV9leGNlcHRpb25faGFuZGxlcih2b2lkKQogc3RhdGljIHZvaWQgZHVt cF9zdGF0ZShzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsKICAgICBzdHJ1Y3QgZnV6 el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7Ci0gICAgY29uc3Qgc3RydWN0IGZ1enpfY29ycHVzICpj ID0gcy0+Y29ycHVzOwogICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzID0gY3R4dC0+cmVn czsKICAgICB1aW50NjRfdCB2YWwgPSAwOwogCiAgICAgcHJpbnRmKCIgLS0gU3RhdGUgLS0gXG4i KTsKICAgICBwcmludGYoImFkZHIgLyBzcCBzaXplOiAlZCAvICVkXG4iLCBjdHh0LT5hZGRyX3Np emUsIGN0eHQtPnNwX3NpemUpOwotICAgIHByaW50ZigiIGNyMDogJWx4XG4iLCBjLT5jclswXSk7 Ci0gICAgcHJpbnRmKCIgY3IzOiAlbHhcbiIsIGMtPmNyWzNdKTsKLSAgICBwcmludGYoIiBjcjQ6 ICVseFxuIiwgYy0+Y3JbNF0pOworICAgIHByaW50ZigiIGNyMDogJWx4XG4iLCBzLT5jclswXSk7 CisgICAgcHJpbnRmKCIgY3IzOiAlbHhcbiIsIHMtPmNyWzNdKTsKKyAgICBwcmludGYoIiBjcjQ6 ICVseFxuIiwgcy0+Y3JbNF0pOwogCiAgICAgcHJpbnRmKCIgcmlwOiAlIlBSSXg2NCJcbiIsIHJl Z3MtPnJpcCk7CiAKQEAgLTYyOSwxNSArNjI0LDEzIEBAIHN0YXRpYyBib29sIGxvbmdfbW9kZV9h Y3RpdmUoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiBzdGF0aWMgYm9vbCBpbl9sb25n bW9kZShzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsKICAgICBjb25zdCBzdHJ1Y3Qg ZnV6el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7Ci0gICAgY29uc3Qgc3RydWN0IGZ1enpfY29ycHVz ICpjID0gcy0+Y29ycHVzOwogCi0gICAgcmV0dXJuIGxvbmdfbW9kZV9hY3RpdmUoY3R4dCkgJiYg Yy0+c2VnbWVudHNbeDg2X3NlZ19jc10ubDsKKyAgICByZXR1cm4gbG9uZ19tb2RlX2FjdGl2ZShj dHh0KSAmJiBzLT5zZWdtZW50c1t4ODZfc2VnX2NzXS5sOwogfQogCiBzdGF0aWMgdm9pZCBzZXRf c2l6ZXMoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiB7CiAgICAgc3RydWN0IGZ1enpf c3RhdGUgKnMgPSBjdHh0LT5kYXRhOwotICAgIGNvbnN0IHN0cnVjdCBmdXp6X2NvcnB1cyAqYyA9 IHMtPmNvcnB1czsKIAogICAgIGN0eHQtPmxtYSA9IGxvbmdfbW9kZV9hY3RpdmUoY3R4dCk7CiAK QEAgLTY0NSwxMSArNjM4LDIwIEBAIHN0YXRpYyB2b2lkIHNldF9zaXplcyhzdHJ1Y3QgeDg2X2Vt dWxhdGVfY3R4dCAqY3R4dCkKICAgICAgICAgY3R4dC0+YWRkcl9zaXplID0gY3R4dC0+c3Bfc2l6 ZSA9IDY0OwogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIGN0eHQtPmFkZHJfc2l6ZSA9IGMtPnNl Z21lbnRzW3g4Nl9zZWdfY3NdLmRiID8gMzIgOiAxNjsKLSAgICAgICAgY3R4dC0+c3Bfc2l6ZSAg ID0gYy0+c2VnbWVudHNbeDg2X3NlZ19zc10uZGIgPyAzMiA6IDE2OworICAgICAgICBjdHh0LT5h ZGRyX3NpemUgPSBzLT5zZWdtZW50c1t4ODZfc2VnX2NzXS5kYiA/IDMyIDogMTY7CisgICAgICAg IGN0eHQtPnNwX3NpemUgICA9IHMtPnNlZ21lbnRzW3g4Nl9zZWdfc3NdLmRiID8gMzIgOiAxNjsK ICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIHNldHVwX3N0YXRlKHN0cnVjdCB4ODZfZW11bGF0ZV9j dHh0ICpjdHh0KQoreworICAgIHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsKKwor ICAgIC8qIEZ1enogYWxsIG9mIHRoZSBzdGF0ZSBpbiBvbmUgZ28gKi8KKyAgICBpZiAoIWRyZWFk KHMsIHMsIERBVEFfT0ZGU0VUKSkKKyAgICAgICAgZXhpdCgtMSk7Cit9CisKICNkZWZpbmUgQ0FO T05JQ0FMSVpFKHgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgZG8g eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg ICAgICB1aW50NjRfdCBfeSA9ICh4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK QEAgLTcwOSw4ICs3MTEsNyBAQCBlbnVtIHsKIHN0YXRpYyB2b2lkIGRpc2FibGVfaG9va3Moc3Ry dWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiB7CiAgICAgc3RydWN0IGZ1enpfc3RhdGUgKnMg PSBjdHh0LT5kYXRhOwotICAgIGNvbnN0IHN0cnVjdCBmdXp6X2NvcnB1cyAqYyA9IHMtPmNvcnB1 czsKLSAgICB1bnNpZ25lZCBsb25nIGJpdG1hcCA9IGMtPm9wdGlvbnM7CisgICAgdW5zaWduZWQg bG9uZyBiaXRtYXAgPSBzLT5vcHRpb25zOwogCiAgICAgLyogU2VlIGFsc28gc2FuaXRpemVfaW5w dXQsIHNvbWUgaG9va3MgY2FuJ3QgYmUgZGlzYWJsZWQuICovCiAgICAgTUFZQkVfRElTQUJMRV9I T09LKHJlYWQpOwpAQCAtNzYwLDEyICs3NjEsMTEgQEAgc3RhdGljIHZvaWQgZGlzYWJsZV9ob29r cyhzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHN0YXRpYyB2b2lkIHNhbml0aXplX2lu cHV0KHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQogewogICAgIHN0cnVjdCBmdXp6X3N0 YXRlICpzID0gY3R4dC0+ZGF0YTsKLSAgICBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3Jw dXM7Ci0gICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MgPSAmYy0+cmVnczsKLSAgICB1bnNp Z25lZCBsb25nIGJpdG1hcCA9IGMtPm9wdGlvbnM7CisgICAgc3RydWN0IGNwdV91c2VyX3JlZ3Mg KnJlZ3MgPSBjdHh0LT5yZWdzOworICAgIHVuc2lnbmVkIGxvbmcgYml0bWFwID0gcy0+b3B0aW9u czsKIAogICAgIC8qIFNvbWUgaG9va3MgY2FuJ3QgYmUgZGlzYWJsZWQuICovCi0gICAgYy0+b3B0 aW9ucyAmPSB+KCgxPDxIT09LX3JlYWQpfCgxPDxIT09LX2luc25fZmV0Y2gpKTsKKyAgICBzLT5v cHRpb25zICY9IH4oKDE8PEhPT0tfcmVhZCl8KDE8PEhPT0tfaW5zbl9mZXRjaCkpOwogCiAgICAg LyogWmVybyAncHJpdmF0ZScgZW50cmllcyAqLwogICAgIHJlZ3MtPmVycm9yX2NvZGUgPSAwOwpA QCAtNzc5LDggKzc3OSw4IEBAIHN0YXRpYyB2b2lkIHNhbml0aXplX2lucHV0KHN0cnVjdCB4ODZf ZW11bGF0ZV9jdHh0ICpjdHh0KQogICAgICAqIENSMC5QRyBjYW4ndCBiZSBzZXQgaWYgQ1IwLlBF IGlzbid0IHNldC4gIFNldCBpcyBtb3JlIGludGVyZXN0aW5nLCBzbwogICAgICAqIHNldCBQRSBp ZiBQRyBpcyBzZXQuCiAgICAgICovCi0gICAgaWYgKCBjLT5jclswXSAmIFg4Nl9DUjBfUEcgKQot ICAgICAgICBjLT5jclswXSB8PSBYODZfQ1IwX1BFOworICAgIGlmICggcy0+Y3JbMF0gJiBYODZf Q1IwX1BHICkKKyAgICAgICAgcy0+Y3JbMF0gfD0gWDg2X0NSMF9QRTsKIAogICAgIC8qIEVGTEFH Uy5WTSBub3QgYXZhaWxhYmxlIGluIGxvbmcgbW9kZSAqLwogICAgIGlmICggbG9uZ19tb2RlX2Fj dGl2ZShjdHh0KSApCkBAIC03ODksOCArNzg5LDggQEAgc3RhdGljIHZvaWQgc2FuaXRpemVfaW5w dXQoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiAgICAgLyogRUZMQUdTLlZNIGltcGxp ZXMgMTYtYml0IG1vZGUgKi8KICAgICBpZiAoIHJlZ3MtPnJmbGFncyAmIFg4Nl9FRkxBR1NfVk0g KQogICAgIHsKLSAgICAgICAgYy0+c2VnbWVudHNbeDg2X3NlZ19jc10uZGIgPSAwOwotICAgICAg ICBjLT5zZWdtZW50c1t4ODZfc2VnX3NzXS5kYiA9IDA7CisgICAgICAgIHMtPnNlZ21lbnRzW3g4 Nl9zZWdfY3NdLmRiID0gMDsKKyAgICAgICAgcy0+c2VnbWVudHNbeDg2X3NlZ19zc10uZGIgPSAw OwogICAgIH0KIH0KIApAQCAtODEyLDcgKzgxMiw3IEBAIGludCBMTFZNRnV6emVyVGVzdE9uZUlu cHV0KGNvbnN0IHVpbnQ4X3QgKmRhdGFfcCwgc2l6ZV90IHNpemUpCiAgICAgfTsKICAgICBzdHJ1 Y3QgeDg2X2VtdWxhdGVfY3R4dCBjdHh0ID0gewogICAgICAgICAuZGF0YSA9ICZzdGF0ZSwKLSAg ICAgICAgLnJlZ3MgPSAmaW5wdXQucmVncywKKyAgICAgICAgLnJlZ3MgPSAmc3RhdGUucmVncywK ICAgICAgICAgLmFkZHJfc2l6ZSA9IDggKiBzaXplb2Yodm9pZCAqKSwKICAgICAgICAgLnNwX3Np emUgPSA4ICogc2l6ZW9mKHZvaWQgKiksCiAgICAgfTsKQEAgLTgzNiw3ICs4MzYsOSBAQCBpbnQg TExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90ICpkYXRhX3AsIHNpemVfdCBzaXpl KQogICAgIG1lbWNweSgmaW5wdXQsIGRhdGFfcCwgc2l6ZSk7CiAKICAgICBzdGF0ZS5jb3JwdXMg PSAmaW5wdXQ7Ci0gICAgc3RhdGUuZGF0YV9udW0gPSBzaXplIC0gREFUQV9PRkZTRVQ7CisgICAg c3RhdGUuZGF0YV9udW0gPSBzaXplOworCisgICAgc2V0dXBfc3RhdGUoJmN0eHQpOwogCiAgICAg c2FuaXRpemVfaW5wdXQoJmN0eHQpOwogCi0tIAoyLjE0LjEKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK