From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH v3 3/6] xl: improve exit codes of some of the domain handling functions Date: Fri, 08 Apr 2016 04:23:50 +0200 Message-ID: <20160408022350.9058.31805.stgit@Solace.fritz.box> References: <20160408022241.9058.86808.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aoM5T-000581-Gd for xen-devel@lists.xenproject.org; Fri, 08 Apr 2016 02:23:55 +0000 Received: by mail-wm0-f68.google.com with SMTP id n3so957409wmn.1 for ; Thu, 07 Apr 2016 19:23:54 -0700 (PDT) In-Reply-To: <20160408022241.9058.86808.stgit@Solace.fritz.box> 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: Wei Liu , Ian Jackson , Harmandeep Kaur List-Id: xen-devel@lists.xenproject.org RnJvbTogSGFybWFuZGVlcCBLYXVyIDx3cml0ZS5oYXJtYW5kZWVwQGdtYWlsLmNvbT4KCmJ5IG1h a2luZyB0aGVtIG1vcmUgY29uc2lzdGVudCB3aXRoIG90aGVyIGV4YW1wbGVzIGluIHhsLgoKQWZm ZWN0ZWQgZnVuY3Rpb25zIGFyZSB0aGUgb25lcyByZWxhdGVkIHRvIGNvbnNvbGUsIHZuYywKZHVt cCwgZGVzdHJveSwgc2h1dGRvd24sIGxpc3QsIGRvbWlkIGFuZCBkb21uYW1lLgoKU2lnbmVkLW9m Zi1ieTogSGFybWFuZGVlcCBLYXVyIDx3cml0ZS5oYXJtYW5kZWVwQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGFyaW8gRmFnZ2dpb2xpIDxkYXJpby5mYWdnaW9saUBjaXRyaXguY29tPgotLS0K Q2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tClYzOiBUaGlzIGlzIHBhdGNoZXMgNCwgNSwgNiBhbmQg OSBzcXVhc2hlZCBpbnRvIG9uZS4KICAgIFNob3J0ZW4gY2hhbmdlbG9nLgoKVjI6IEFkZCBhdXRv Y29ubmVjdF92bmN2aWV3ZXIoKS4KLS0tCiB0b29scy9saWJ4bC94bF9jbWRpbXBsLmMgfCAgIDcy ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90 b29scy9saWJ4bC94bF9jbWRpbXBsLmMgYi90b29scy9saWJ4bC94bF9jbWRpbXBsLmMKaW5kZXgg OWNkMzE0NC4uNGE1NjBkNyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCisr KyBiL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwpAQCAtMTc0LDcgKzE3NCw3IEBAIHN0YXRpYyB1 aW50MzJfdCBmaW5kX2RvbWFpbihjb25zdCBjaGFyICpwKQogICAgIHJjID0gbGlieGxfZG9tYWlu X3F1YWxpZmllcl90b19kb21pZChjdHgsIHAsICZkb21pZCk7CiAgICAgaWYgKHJjKSB7CiAgICAg ICAgIGZwcmludGYoc3RkZXJyLCAiJXMgaXMgYW4gaW52YWxpZCBkb21haW4gaWRlbnRpZmllciAo cmM9JWQpXG4iLCBwLCByYyk7Ci0gICAgICAgIGV4aXQoMik7CisgICAgICAgIGV4aXQoRVhJVF9G QUlMVVJFKTsKICAgICB9CiAgICAgY29tbW9uX2RvbW5hbWUgPSBsaWJ4bF9kb21pZF90b19uYW1l KGN0eCwgZG9taWQpOwogICAgIHJldHVybiBkb21pZDsKQEAgLTIyMSw3ICsyMjEsNyBAQCBzdGF0 aWMgdm9pZCBhdXRvY29ubmVjdF92bmN2aWV3ZXIodWludDMyX3QgZG9taWQsIGludCBhdXRvcGFz cykKIAogICAgIHNsZWVwKDEpOwogICAgIHZuY3ZpZXdlcihkb21pZCwgYXV0b3Bhc3MpOwotICAg IF9leGl0KDEpOworICAgIF9leGl0KEVYSVRfRkFJTFVSRSk7CiB9CiAKIHN0YXRpYyBpbnQgYWNx dWlyZV9sb2NrKHZvaWQpCkBAIC00MzUsNyArNDM1LDcgQEAgc3RhdGljIHZvaWQgZmx1c2hfc3Ry ZWFtKEZJTEUgKmZoKQogCiAgICAgaWYgKGZlcnJvcihmaCkgfHwgZmZsdXNoKGZoKSkgewogICAg ICAgICBwZXJyb3IoZmhfbmFtZSk7Ci0gICAgICAgIGV4aXQoLTEpOworICAgICAgICBleGl0KEVY SVRfRkFJTFVSRSk7CiAgICAgfQogfQogCkBAIC0zNzM1LDcgKzM3MzUsNyBAQCBpbnQgbWFpbl9j b25zb2xlKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgICAgIHR5cGUgPSBMSUJYTF9D T05TT0xFX1RZUEVfU0VSSUFMOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGZwcmludGYo c3RkZXJyLCAiY29uc29sZSB0eXBlIHN1cHBvcnRlZCBhcmU6IHB2LCBzZXJpYWxcbiIpOwotICAg ICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAg ICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgJ24nOgpAQCAtMzc0OSw3ICszNzQ5LDcg QEAgaW50IG1haW5fY29uc29sZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgZWxzZQogICAg ICAgICBsaWJ4bF9jb25zb2xlX2V4ZWMoY3R4LCBkb21pZCwgbnVtLCB0eXBlKTsKICAgICBmcHJp bnRmKHN0ZGVyciwgIlVuYWJsZSB0byBhdHRhY2ggY29uc29sZVxuIik7Ci0gICAgcmV0dXJuIDE7 CisgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKIH0KIAogaW50IG1haW5fdm5jdmlld2VyKGludCBh cmdjLCBjaGFyICoqYXJndikKQEAgLTM3NzEsOCArMzc3MSw4IEBAIGludCBtYWluX3ZuY3ZpZXdl cihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgZG9taWQgPSBmaW5kX2RvbWFpbihhcmd2W29w dGluZF0pOwogCiAgICAgaWYgKHZuY3ZpZXdlcihkb21pZCwgYXV0b3Bhc3MpKQotICAgICAgICBy ZXR1cm4gMTsKLSAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAg ICByZXR1cm4gRVhJVF9TVUNDRVNTOwogfQogCiBzdGF0aWMgdm9pZCBwY2lsaXN0KHVpbnQzMl90 IGRvbWlkKQpAQCAtNDAxMCwxMCArNDAxMCwxMCBAQCBzdGF0aWMgdm9pZCBkZXN0cm95X2RvbWFp bih1aW50MzJfdCBkb21pZCwgaW50IGZvcmNlKQogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk5v dCBkZXN0cm95aW5nIGRvbWFpbiAwOyB1c2UgLWYgdG8gZm9yY2UuXG4iCiAgICAgICAgICAgICAg ICAgICAgICAgICAiVGhpcyBjYW4gb25seSBiZSBkb25lIHdoZW4gdXNpbmcgYSBkaXNhZ2dyZWdh dGVkICIKICAgICAgICAgICAgICAgICAgICAgICAgICJoYXJkd2FyZSBkb21haW4gYW5kIHRvb2xz dGFjay5cblxuIik7Ci0gICAgICAgIGV4aXQoLTEpOworICAgICAgICBleGl0KEVYSVRfRkFJTFVS RSk7CiAgICAgfQogICAgIHJjID0gbGlieGxfZG9tYWluX2Rlc3Ryb3koY3R4LCBkb21pZCwgMCk7 Ci0gICAgaWYgKHJjKSB7IGZwcmludGYoc3RkZXJyLCJkZXN0cm95IGZhaWxlZCAocmM9JWQpXG4i LHJjKTsgZXhpdCgtMSk7IH0KKyAgICBpZiAocmMpIHsgZnByaW50ZihzdGRlcnIsImRlc3Ryb3kg ZmFpbGVkIChyYz0lZClcbiIscmMpOyBleGl0KEVYSVRfRkFJTFVSRSk7IH0KIH0KIAogc3RhdGlj IHZvaWQgd2FpdF9mb3JfZG9tYWluX2RlYXRocyhsaWJ4bF9ldmdlbl9kb21haW5fZGVhdGggKipk ZWF0aHdzLCBpbnQgbnIpCkBAIC00MDI1LDcgKzQwMjUsNyBAQCBzdGF0aWMgdm9pZCB3YWl0X2Zv cl9kb21haW5fZGVhdGhzKGxpYnhsX2V2Z2VuX2RvbWFpbl9kZWF0aCAqKmRlYXRod3MsIGludCBu cikKICAgICAgICAgcmMgPSBsaWJ4bF9ldmVudF93YWl0KGN0eCwgJmV2ZW50LCBMSUJYTF9FVkVO VE1BU0tfQUxMLCAwLDApOwogICAgICAgICBpZiAocmMpIHsKICAgICAgICAgICAgIExPRygiRmFp bGVkIHRvIGdldCBldmVudCwgcXVpdHRpbmcgKHJjPSVkKSIsIHJjKTsKLSAgICAgICAgICAgIGV4 aXQoLTEpOworICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICAgICAgICB9CiAKICAg ICAgICAgc3dpdGNoIChldmVudC0+dHlwZSkgewpAQCAtNDA3MCwxNCArNDA3MCwxNCBAQCBzdGF0 aWMgdm9pZCBzaHV0ZG93bl9kb21haW4odWludDMyX3QgZG9taWQsCiAgICAgfQogCiAgICAgaWYg KHJjKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCJzaHV0ZG93biBmYWlsZWQgKHJjPSVkKVxu IixyYyk7ZXhpdCgtMSk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCJzaHV0ZG93biBmYWlsZWQg KHJjPSVkKVxuIixyYyk7ZXhpdChFWElUX0ZBSUxVUkUpOwogICAgIH0KIAogICAgIGlmIChkZWF0 aHcpIHsKICAgICAgICAgcmMgPSBsaWJ4bF9ldmVuYWJsZV9kb21haW5fZGVhdGgoY3R4LCBkb21p ZCwgZm9yX3VzZXIsIGRlYXRodyk7CiAgICAgICAgIGlmIChyYykgewogICAgICAgICAgICAgZnBy aW50ZihzdGRlcnIsIndhaXQgZm9yIGRlYXRoIGZhaWxlZCAoZXZnZW4sIHJjPSVkKVxuIixyYyk7 Ci0gICAgICAgICAgICBleGl0KC0xKTsKKyAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsK ICAgICAgICAgfQogICAgIH0KIH0KQEAgLTQxMDEsMTQgKzQxMDEsMTQgQEAgc3RhdGljIHZvaWQg cmVib290X2RvbWFpbih1aW50MzJfdCBkb21pZCwgbGlieGxfZXZnZW5fZG9tYWluX2RlYXRoICoq ZGVhdGh3LAogICAgICAgICB9CiAgICAgfQogICAgIGlmIChyYykgewotICAgICAgICBmcHJpbnRm KHN0ZGVyciwicmVib290IGZhaWxlZCAocmM9JWQpXG4iLHJjKTtleGl0KC0xKTsKKyAgICAgICAg ZnByaW50ZihzdGRlcnIsInJlYm9vdCBmYWlsZWQgKHJjPSVkKVxuIixyYyk7ZXhpdChFWElUX0ZB SUxVUkUpOwogICAgIH0KIAogICAgIGlmIChkZWF0aHcpIHsKICAgICAgICAgcmMgPSBsaWJ4bF9l dmVuYWJsZV9kb21haW5fZGVhdGgoY3R4LCBkb21pZCwgZm9yX3VzZXIsIGRlYXRodyk7CiAgICAg ICAgIGlmIChyYykgewogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsIndhaXQgZm9yIGRlYXRo IGZhaWxlZCAoZXZnZW4sIHJjPSVkKVxuIixyYyk7Ci0gICAgICAgICAgICBleGl0KC0xKTsKKyAg ICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTQy NDEsMTIgKzQyNDEsMTIgQEAgc3RhdGljIHZvaWQgbGlzdF9kb21haW5zKGJvb2wgdmVyYm9zZSwg Ym9vbCBjb250ZXh0LCBib29sIGNsYWltLCBib29sIG51bWEsCiAgICAgaWYgKG51bWEpIHsKICAg ICAgICAgaWYgKGxpYnhsX25vZGVfYml0bWFwX2FsbG9jKGN0eCwgJm5vZGVtYXAsIDApKSB7CiAg ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImxpYnhsX25vZGVfYml0bWFwX2FsbG9jX2ZhaWxl ZC5cbiIpOwotICAgICAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlM VVJFKTsKICAgICAgICAgfQogICAgICAgICBpZiAobGlieGxfZ2V0X3BoeXNpbmZvKGN0eCwgJnBo eXNpbmZvKSAhPSAwKSB7CiAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImxpYnhsX3BoeXNp bmZvIGZhaWxlZC5cbiIpOwogICAgICAgICAgICAgbGlieGxfYml0bWFwX2Rpc3Bvc2UoJm5vZGVt YXApOwotICAgICAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJF KTsKICAgICAgICAgfQogCiAgICAgICAgIHByaW50ZigiIE5PREUgQWZmaW5pdHkiKTsKQEAgLTQz MTAsNyArNDMxMCw3IEBAIHN0YXRpYyB2b2lkIGxpc3Rfdm0odm9pZCkKIAogICAgIGlmICghaW5m bykgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImxpYnhsX2xpc3Rfdm0gZmFpbGVkLlxuIik7 Ci0gICAgICAgIGV4aXQoMSk7CisgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgICB9CiAg ICAgcHJpbnRmKCJVVUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEICAgIG5h bWVcbiIpOwogICAgIGZvciAoaSA9IDA7IGkgPCBuYl92bTsgaSsrKSB7CkBAIC00MzI3LDcgKzQz MjcsNyBAQCBzdGF0aWMgdm9pZCBjb3JlX2R1bXBfZG9tYWluKHVpbnQzMl90IGRvbWlkLCBjb25z dCBjaGFyICpmaWxlbmFtZSkKICAgICBpbnQgcmM7CiAKICAgICByYz1saWJ4bF9kb21haW5fY29y ZV9kdW1wKGN0eCwgZG9taWQsIGZpbGVuYW1lLCBOVUxMKTsKLSAgICBpZiAocmMpIHsgZnByaW50 ZihzdGRlcnIsImNvcmUgZHVtcCBmYWlsZWQgKHJjPSVkKVxuIixyYyk7ZXhpdCgtMSk7IH0KKyAg ICBpZiAocmMpIHsgZnByaW50ZihzdGRlcnIsImNvcmUgZHVtcCBmYWlsZWQgKHJjPSVkKVxuIixy Yyk7ZXhpdChFWElUX0ZBSUxVUkUpOyB9CiB9CiAKICNpZm5kZWYgTElCWExfSEFWRV9OT19TVVNQ RU5EX1JFU1VNRQpAQCAtNTExOCw3ICs1MTE4LDcgQEAgaW50IG1haW5fZHVtcF9jb3JlKGludCBh cmdjLCBjaGFyICoqYXJndikKICAgICB9CiAKICAgICBjb3JlX2R1bXBfZG9tYWluKGZpbmRfZG9t YWluKGFyZ3Zbb3B0aW5kXSksIGFyZ3Zbb3B0aW5kICsgMV0pOwotICAgIHJldHVybiAwOworICAg IHJldHVybiBFWElUX1NVQ0NFU1M7CiB9CiAKIGludCBtYWluX3BhdXNlKGludCBhcmdjLCBjaGFy ICoqYXJndikKQEAgLTUxMzEsNyArNTEzMSw3IEBAIGludCBtYWluX3BhdXNlKGludCBhcmdjLCBj aGFyICoqYXJndikKIAogICAgIHBhdXNlX2RvbWFpbihmaW5kX2RvbWFpbihhcmd2W29wdGluZF0p KTsKIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBFWElUX1NVQ0NFU1M7CiB9CiAKIGludCBt YWluX3VucGF1c2UoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQpAQCAtNTE0NCw3ICs1MTQ0LDcgQEAg aW50IG1haW5fdW5wYXVzZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKICAgICB1bnBhdXNlX2Rv bWFpbihmaW5kX2RvbWFpbihhcmd2W29wdGluZF0pKTsKIAotICAgIHJldHVybiAwOworICAgIHJl dHVybiBFWElUX1NVQ0NFU1M7CiB9CiAKIGludCBtYWluX2Rlc3Ryb3koaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQpAQCAtNTE1OSw3ICs1MTU5LDcgQEAgaW50IG1haW5fZGVzdHJveShpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAgICAgfQogCiAgICAgZGVzdHJveV9kb21haW4oZmluZF9kb21haW4oYXJn dltvcHRpbmRdKSwgZm9yY2UpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBFWElUX1NVQ0NF U1M7CiB9CiAKIHN0YXRpYyBpbnQgbWFpbl9zaHV0ZG93bl9vcl9yZWJvb3QoaW50IGRvX3JlYm9v dCwgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQpAQCAtNTE5MSw3ICs1MTkxLDcgQEAgc3RhdGljIGlu dCBtYWluX3NodXRkb3duX29yX3JlYm9vdChpbnQgZG9fcmVib290LCBpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAKICAgICBpZiAoIWFyZ3Zbb3B0aW5kXSAmJiAhYWxsKSB7CiAgICAgICAgIGZwcmlu dGYoc3RkZXJyLCAiWW91IG11c3Qgc3BlY2lmeSAtYSBvciBhIGRvbWFpbiBpZC5cblxuIik7Ci0g ICAgICAgIHJldHVybiBvcHQ7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgfQog CiAgICAgaWYgKGFsbCkgewpAQCAtNTE5OSw3ICs1MTk5LDcgQEAgc3RhdGljIGludCBtYWluX3No dXRkb3duX29yX3JlYm9vdChpbnQgZG9fcmVib290LCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAg ICAgICAgIGxpYnhsX2V2Z2VuX2RvbWFpbl9kZWF0aCAqKmRlYXRod3MgPSBOVUxMOwogICAgICAg ICBpZiAoIShkb21pbmZvID0gbGlieGxfbGlzdF9kb21haW4oY3R4LCAmbmJfZG9tYWluKSkpIHsK ICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAibGlieGxfbGlzdF9kb21haW4gZmFpbGVkLlxu Iik7Ci0gICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlM VVJFOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHdhaXRfZm9yX2l0KQpAQCAtNTIzMCw3ICs1 MjMwLDcgQEAgc3RhdGljIGludCBtYWluX3NodXRkb3duX29yX3JlYm9vdChpbnQgZG9fcmVib290 LCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgfQogCiAKLSAgICByZXR1cm4gMDsKKyAgICBy ZXR1cm4gRVhJVF9TVUNDRVNTOwogfQogCiBpbnQgbWFpbl9zaHV0ZG93bihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCkBAIC01Mjg4LDcgKzUyODgsNyBAQCBpbnQgbWFpbl9saXN0KGludCBhcmdjLCBj aGFyICoqYXJndikKICAgICAgICAgaW5mbyA9IGxpYnhsX2xpc3RfZG9tYWluKGN0eCwgJm5iX2Rv bWFpbik7CiAgICAgICAgIGlmICghaW5mbykgewogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs ICJsaWJ4bF9saXN0X2RvbWFpbiBmYWlsZWQuXG4iKTsKLSAgICAgICAgICAgIHJldHVybiAxOwor ICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgICAgICAgfQogICAgICAgICBpbmZv X2ZyZWUgPSBpbmZvOwogICAgIH0gZWxzZSBpZiAob3B0aW5kID09IGFyZ2MtMSkgewpAQCAtNTI5 NywxNyArNTI5NywxNyBAQCBpbnQgbWFpbl9saXN0KGludCBhcmdjLCBjaGFyICoqYXJndikKICAg ICAgICAgaWYgKHJjID09IEVSUk9SX0RPTUFJTl9OT1RGT1VORCkgewogICAgICAgICAgICAgZnBy aW50ZihzdGRlcnIsICJFcnJvcjogRG9tYWluIFwnJXNcJyBkb2VzIG5vdCBleGlzdC5cbiIsCiAg ICAgICAgICAgICAgICAgYXJndltvcHRpbmRdKTsKLSAgICAgICAgICAgIHJldHVybiAtcmM7Cisg ICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgICAgICB9CiAgICAgICAgIGlmIChy YykgewogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJsaWJ4bF9kb21haW5faW5mbyBmYWls ZWQgKGNvZGUgJWQpLlxuIiwgcmMpOwotICAgICAgICAgICAgcmV0dXJuIC1yYzsKKyAgICAgICAg ICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAgICAgIH0KICAgICAgICAgaW5mbyA9ICZpbmZv X2J1ZjsKICAgICAgICAgbmJfZG9tYWluID0gMTsKICAgICB9IGVsc2UgewogICAgICAgICBoZWxw KCJsaXN0Iik7Ci0gICAgICAgIHJldHVybiAyOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJF OwogICAgIH0KIAogICAgIGlmIChkZXRhaWxzKQpAQCAtNTMyMSw3ICs1MzIxLDcgQEAgaW50IG1h aW5fbGlzdChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKICAgICBsaWJ4bF9kb21pbmZvX2Rpc3Bv c2UoJmluZm9fYnVmKTsKIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBFWElUX1NVQ0NFU1M7 CiB9CiAKIGludCBtYWluX3ZtX2xpc3QoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQpAQCAtNTMzMyw3 ICs1MzMzLDcgQEAgaW50IG1haW5fdm1fbGlzdChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAg fQogCiAgICAgbGlzdF92bSgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBFWElUX1NVQ0NF U1M7CiB9CiAKIHN0YXRpYyB2b2lkIHN0cmluZ19yZWFsbG9jX2FwcGVuZChjaGFyICoqYWNjdW11 bGF0ZSwgY29uc3QgY2hhciAqbW9yZSkKQEAgLTY5ODAsMTIgKzY5ODAsMTIgQEAgaW50IG1haW5f ZG9taWQoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAgICAgaWYgKGxpYnhsX25hbWVfdG9fZG9t aWQoY3R4LCBkb21uYW1lLCAmZG9taWQpKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ2Fu J3QgZ2V0IGRvbWlkIG9mIGRvbWFpbiBuYW1lICclcycsIG1heWJlIHRoaXMgZG9tYWluIGRvZXMg bm90IGV4aXN0LlxuIiwgZG9tbmFtZSk7Ci0gICAgICAgIHJldHVybiAxOworICAgICAgICByZXR1 cm4gRVhJVF9GQUlMVVJFOwogICAgIH0KIAogICAgIHByaW50ZigiJWRcbiIsIGRvbWlkKTsKIAot ICAgIHJldHVybiAwOworICAgIHJldHVybiBFWElUX1NVQ0NFU1M7CiB9CiAKIGludCBtYWluX2Rv bW5hbWUoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQpAQCAtNzAwMywxOSArNzAwMywxOSBAQCBpbnQg bWFpbl9kb21uYW1lKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBpZiAoZG9taWQgPT0gMCAm JiAhc3RyY21wKGVuZHB0ciwgYXJndltvcHRpbmRdKSkgewogICAgICAgICAvKm5vIGRpZ2l0cyBh dCBhbGwqLwogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkludmFsaWQgZG9tYWluIGlkLlxuXG4i KTsKLSAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CiAgICAg fQogCiAgICAgZG9tbmFtZSA9IGxpYnhsX2RvbWlkX3RvX25hbWUoY3R4LCBkb21pZCk7CiAgICAg aWYgKCFkb21uYW1lKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ2FuJ3QgZ2V0IGRvbWFp biBuYW1lIG9mIGRvbWFpbiBpZCAnJWQnLCBtYXliZSB0aGlzIGRvbWFpbiBkb2VzIG5vdCBleGlz dC5cbiIsIGRvbWlkKTsKLSAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIHJldHVybiBFWElUX0ZB SUxVUkU7CiAgICAgfQogCiAgICAgcHJpbnRmKCIlc1xuIiwgZG9tbmFtZSk7CiAgICAgZnJlZShk b21uYW1lKTsKIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBFWElUX1NVQ0NFU1M7CiB9CiAK IGludCBtYWluX3JlbmFtZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK