From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harmandeep Kaur Subject: [PATCH 3/9 v2] xl: Improve return and exit codes of migrate related functions. Date: Wed, 9 Mar 2016 00:32:04 +0530 Message-ID: <1457463730-4712-4-git-send-email-write.harmandeep@gmail.com> References: <1457463730-4712-1-git-send-email-write.harmandeep@gmail.com> 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.xen.org with esmtp (Exim 4.84) (envelope-from ) id 1adMu7-0000pK-C5 for xen-devel@lists.xenproject.org; Tue, 08 Mar 2016 19:02:47 +0000 Received: by mail-wm0-f65.google.com with SMTP id l68so5892069wml.3 for ; Tue, 08 Mar 2016 11:02:45 -0800 (PST) In-Reply-To: <1457463730-4712-1-git-send-email-write.harmandeep@gmail.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: wei.liu2@citrix.com, ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, Harmandeep Kaur List-Id: xen-devel@lists.xenproject.org TWljcm9zIENIS19FUlJOT1ZBTCwgQ0hLX1NZU0NBTEwsIE1VU1QgYXJlIGZpeGVkLgoKeHZhc3By aW50ZigpLCBzYXZlX2RvbWFpbl9jb3JlX2JlZ2luKCksIGNyZWF0ZV9taWdyYXRpb25fY2hpbGQo KSwKbWlncmF0ZV9yZWFkX2ZpeGVkbWVzc2FnZSgpLCBtaWdyYXRlX2RvX3ByZWFtYmxlKCksIG1p Z3JhdGVfZG9tYWluKCksCm1pZ3JhdGVfcmVjZWl2ZSgpLCBtYWluX21pZ3JhdGVfcmVjZWl2ZSgp IGFuZCBtYWluX21pZ3JhdGUoKSBpbiB0aGUKZmlsZSB4bF9jbWRpbXBsIGFyZSBmaXhlZC4KClNp Z25lZC1vZmYtYnk6IEhhcm1hbmRlZXAgS2F1ciA8d3JpdGUuaGFybWFuZGVlcEBnbWFpbC5jb20+ Ci0tLQp2MjogQWRkIENIS19TWVNDQUxMLCBNVVNUIG1pY3Jvcy4KICAgIEFkZCB4dmFzcHJpbnRm KCkuCi0tLQogdG9vbHMvbGlieGwveGxfY21kaW1wbC5jIHwgNTggKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0 aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwveGxfY21k aW1wbC5jIGIvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCmluZGV4IDY5MGViOTEuLjllYzNiMmEg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYworKysgYi90b29scy9saWJ4bC94 bF9jbWRpbXBsLmMKQEAgLTUwLDcgKzUwLDcgQEAKICAgICAgICAgZWxzZSBpZiAoY2hrX2Vycm5v dmFsID4gMCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg ICAgIGZwcmludGYoc3RkZXJyLCJ4bDogZmF0YWwgZXJyb3I6ICVzOiVkOiAlczogJXNcbiIsICAg ICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgX19GSUxFX18sX19MSU5FX18sIHN0cmVycm9y KGNoa19lcnJub3ZhbCksICNjYWxsKTsgIFwKLSAgICAgICAgICAgIGV4aXQoLUVSUk9SX0ZBSUwp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg IGV4aXQoRVhJVF9GQUlMVVJFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9KQogCkBAIC01OSw3ICs1OSw3IEBACiAgICAg ICAgIGlmICgoY2FsbCkgPT0gLTEpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwieGw6IGZhdGFsIGVycm9y OiAlczolZDogJXM6ICVzXG4iLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIF9fRklM RV9fLF9fTElORV9fLCBzdHJlcnJvcihlcnJubyksICNjYWxsKTsgICAgICAgICBcCi0gICAgICAg ICAgICBleGl0KC1FUlJPUl9GQUlMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSkKIApA QCAtNjgsNyArNjgsNyBAQAogICAgICAgICBpZiAobXVzdF9yYyA8IDApIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIGZwcmlu dGYoc3RkZXJyLCJ4bDogZmF0YWwgZXJyb3I6ICVzOiVkLCByYz0lZDogJXNcbiIsICAgICAgIFwK ICAgICAgICAgICAgICAgICAgICAgX19GSUxFX18sX19MSU5FX18sIG11c3RfcmMsICNjYWxsKTsg ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGV4aXQoLW11c3RfcmMpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGV4aXQoRVhJ VF9GQUlMVVJFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICB9KQogCkBAIC0zNzQsNyArMzc0LDcgQEAgc3RhdGljIHZvaWQg eHZhc3ByaW50ZihjaGFyICoqc3RycCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwKQogICAg IGludCByID0gdmFzcHJpbnRmKHN0cnAsIGZtdCwgYXApOwogICAgIGlmIChyID09IC0xKSB7CiAg ICAgICAgIHBlcnJvcigiYXNwcmludGYgZmFpbGVkIik7Ci0gICAgICAgIGV4aXQoLUVSUk9SX0ZB SUwpOworICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgICAgfQogfQogCkBAIC00MDQ1LDcg KzQwNDUsNyBAQCBzdGF0aWMgdm9pZCBzYXZlX2RvbWFpbl9jb3JlX2JlZ2luKHVpbnQzMl90IGRv bWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29uZmlnX3YsIGNv bmZpZ19sZW5fcik7CiAgICAgICAgIGlmIChyYykgewogICAgICAgICAgICAgZnByaW50ZihzdGRl cnIsICJ1bmFibGUgdG8gcmVhZCBvdmVycmlkZGVuIGNvbmZpZyBmaWxlXG4iKTsKLSAgICAgICAg ICAgIGV4aXQoMik7CisgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgICAgICAgIH0K ICAgICAgICAgcGFyc2VfY29uZmlnX2RhdGEob3ZlcnJpZGVfY29uZmlnX2ZpbGUsIGNvbmZpZ192 LCAqY29uZmlnX2xlbl9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmZF9jb25maWcpOwpA QCAtNDA1NCwxNCArNDA1NCwxNCBAQCBzdGF0aWMgdm9pZCBzYXZlX2RvbWFpbl9jb3JlX2JlZ2lu KHVpbnQzMl90IGRvbWlkLAogICAgICAgICByYyA9IGxpYnhsX3JldHJpZXZlX2RvbWFpbl9jb25m aWd1cmF0aW9uKGN0eCwgZG9taWQsICZkX2NvbmZpZyk7CiAgICAgICAgIGlmIChyYykgewogICAg ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1bmFibGUgdG8gcmV0cmlldmUgZG9tYWluIGNvbmZp Z3VyYXRpb25cbiIpOwotICAgICAgICAgICAgZXhpdCgyKTsKKyAgICAgICAgICAgIGV4aXQoRVhJ VF9GQUlMVVJFKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGNvbmZpZ19jID0gbGlieGxfZG9t YWluX2NvbmZpZ190b19qc29uKGN0eCwgJmRfY29uZmlnKTsKICAgICBpZiAoIWNvbmZpZ19jKSB7 CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAidW5hYmxlIHRvIGNvbnZlcnQgY29uZmlnIGZpbGUg dG8gSlNPTlxuIik7Ci0gICAgICAgIGV4aXQoMik7CisgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJF KTsKICAgICB9CiAgICAgKmNvbmZpZ19kYXRhX3IgPSAodWludDhfdCAqKWNvbmZpZ19jOwogICAg ICpjb25maWdfbGVuX3IgPSBzdHJsZW4oY29uZmlnX2MpICsgMTsgLyogaW5jbHVkaW5nIHRyYWls aW5nICdcMCcgKi8KQEAgLTQxNzUsNyArNDE3NSw3IEBAIHN0YXRpYyBwaWRfdCBjcmVhdGVfbWln cmF0aW9uX2NoaWxkKGNvbnN0IGNoYXIgKnJ1bmUsIGludCAqc2VuZF9mZCwKICAgICAgICAgY2xv c2UocmVjdnBpcGVbMF0pOyBjbG9zZShyZWN2cGlwZVsxXSk7CiAgICAgICAgIGV4ZWNscCgic2gi LCJzaCIsIi1jIixydW5lLChjaGFyKikwKTsKICAgICAgICAgcGVycm9yKCJmYWlsZWQgdG8gZXhl YyBzaCIpOwotICAgICAgICBleGl0KC0xKTsKKyAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwog ICAgIH0KIAogICAgIGNsb3NlKHNlbmRwaXBlWzBdKTsKQEAgLTQxOTgsMTQgKzQxOTgsMTQgQEAg c3RhdGljIGludCBtaWdyYXRlX3JlYWRfZml4ZWRtZXNzYWdlKGludCBmZCwgY29uc3Qgdm9pZCAq bXNnLCBpbnQgbXNnc3osCiAKICAgICBzdHJlYW0gPSBydW5lID8gIm1pZ3JhdGlvbiByZWNlaXZl ciBzdHJlYW0iIDogIm1pZ3JhdGlvbiBzdHJlYW0iOwogICAgIHJjID0gbGlieGxfcmVhZF9leGFj dGx5KGN0eCwgZmQsIGJ1ZiwgbXNnc3osIHN0cmVhbSwgd2hhdCk7Ci0gICAgaWYgKHJjKSByZXR1 cm4gRVJST1JfRkFJTDsKKyAgICBpZiAocmMpIHJldHVybiAxOwogCiAgICAgaWYgKG1lbWNtcChi dWYsIG1zZywgbXNnc3opKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgY29udGFpbmVk IHVuZXhwZWN0ZWQgZGF0YSBpbnN0ZWFkIG9mICVzXG4iLAogICAgICAgICAgICAgICAgIHN0cmVh bSwgd2hhdCk7CiAgICAgICAgIGlmIChydW5lKQogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs ICIoY29tbWFuZCBydW4gd2FzOiAlcyApXG4iLCBydW5lKTsKLSAgICAgICAgcmV0dXJuIEVSUk9S X0ZBSUw7CisgICAgICAgIHJldHVybiAxOwogICAgIH0KICAgICByZXR1cm4gMDsKIH0KQEAgLTQy ODEsNyArNDI4MSw3IEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGVfZG9fcHJlYW1ibGUoaW50IHNlbmRf ZmQsIGludCByZWN2X2ZkLCBwaWRfdCBjaGlsZCwKIAogICAgIGlmIChzZW5kX2ZkIDwgMCB8fCBy ZWN2X2ZkIDwgMCkgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIm1pZ3JhdGVfZG9fcHJlYW1i bGU6IGludmFsaWQgZmlsZSBkZXNjcmlwdG9yc1xuIik7Ci0gICAgICAgIGV4aXQoMSk7CisgICAg ICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgICB9CiAKICAgICByYyA9IG1pZ3JhdGVfcmVhZF9m aXhlZG1lc3NhZ2UocmVjdl9mZCwgbWlncmF0ZV9yZWNlaXZlcl9iYW5uZXIsCkBAIC00MjkwLDcg KzQyOTAsNyBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlX2RvX3ByZWFtYmxlKGludCBzZW5kX2ZkLCBp bnQgcmVjdl9mZCwgcGlkX3QgY2hpbGQsCiAgICAgaWYgKHJjKSB7CiAgICAgICAgIGNsb3NlKHNl bmRfZmQpOwogICAgICAgICBtaWdyYXRpb25fY2hpbGRfcmVwb3J0KHJlY3ZfZmQpOwotICAgICAg ICBleGl0KC1yYyk7CisgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgICB9CiAKICAgICBz YXZlX2RvbWFpbl9jb3JlX3dyaXRlY29uZmlnKHNlbmRfZmQsICJtaWdyYXRpb24gc3RyZWFtIiwK QEAgLTQzMTUsNyArNDMxNSw3IEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGVfZG9tYWluKHVpbnQzMl90 IGRvbWlkLCBjb25zdCBjaGFyICpydW5lLCBpbnQgZGVidWcsCiAgICAgaWYgKCFjb25maWdfbGVu KSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTm8gY29uZmlnIGZpbGUgc3RvcmVkIGZvciBy dW5uaW5nIGRvbWFpbiBhbmQgIgogICAgICAgICAgICAgICAgICJub25lIHN1cHBsaWVkIC0gY2Fu bm90IG1pZ3JhdGUuXG4iKTsKLSAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgZXhpdChFWElUX0ZB SUxVUkUpOwogICAgIH0KIAogICAgIGNoaWxkID0gY3JlYXRlX21pZ3JhdGlvbl9jaGlsZChydW5l LCAmc2VuZF9mZCwgJnJlY3ZfZmQpOwpAQCAtNDQwMiwyNiArNDQwMiwyNiBAQCBzdGF0aWMgdm9p ZCBtaWdyYXRlX2RvbWFpbih1aW50MzJfdCBkb21pZCwgY29uc3QgY2hhciAqcnVuZSwgaW50IGRl YnVnLAogICAgICAgICBpZiAoIXJjKSBmcHJpbnRmKHN0ZGVyciwgIm1pZ3JhdGlvbiBzZW5kZXI6 IFJlc3VtZWQgT0suXG4iKTsKIAogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk1pZ3JhdGlvbiBm YWlsZWQgZHVlIHRvIHByb2JsZW1zIGF0IHRhcmdldC5cbiIpOwotICAgICAgICBleGl0KC1FUlJP Ul9GQUlMKTsKKyAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICAgIH0KIAogICAgIGZwcmlu dGYoc3RkZXJyLCAibWlncmF0aW9uIHNlbmRlcjogVGFyZ2V0IHJlcG9ydHMgc3VjY2Vzc2Z1bCBz dGFydHVwLlxuIik7CiAgICAgbGlieGxfZG9tYWluX2Rlc3Ryb3koY3R4LCBkb21pZCwgMCk7IC8q IGJhbmchICovCiAgICAgZnByaW50ZihzdGRlcnIsICJNaWdyYXRpb24gc3VjY2Vzc2Z1bC5cbiIp OwotICAgIGV4aXQoMCk7CisgICAgZXhpdChFWElUX1NVQ0NFU1MpOwogCiAgZmFpbGVkX3N1c3Bl bmQ6CiAgICAgY2xvc2Uoc2VuZF9mZCk7CiAgICAgbWlncmF0aW9uX2NoaWxkX3JlcG9ydChyZWN2 X2ZkKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIk1pZ3JhdGlvbiBmYWlsZWQsIGZhaWxlZCB0byBz dXNwZW5kIGF0IHNlbmRlci5cbiIpOwotICAgIGV4aXQoLUVSUk9SX0ZBSUwpOworICAgIGV4aXQo RVhJVF9GQUlMVVJFKTsKIAogIGZhaWxlZF9yZXN1bWU6CiAgICAgY2xvc2Uoc2VuZF9mZCk7CiAg ICAgbWlncmF0aW9uX2NoaWxkX3JlcG9ydChyZWN2X2ZkKTsKICAgICBmcHJpbnRmKHN0ZGVyciwg Ik1pZ3JhdGlvbiBmYWlsZWQsIHJlc3VtaW5nIGF0IHNlbmRlci5cbiIpOwogICAgIGxpYnhsX2Rv bWFpbl9yZXN1bWUoY3R4LCBkb21pZCwgMSwgMCk7Ci0gICAgZXhpdCgtRVJST1JfRkFJTCk7Cisg ICAgZXhpdChFWElUX0ZBSUxVUkUpOwogCiAgZmFpbGVkX2JhZGx5OgogICAgIGZwcmludGYoc3Rk ZXJyLApAQCAtNDQzNCw3ICs0NDM0LDcgQEAgc3RhdGljIHZvaWQgbWlncmF0ZV9kb21haW4odWlu dDMyX3QgZG9taWQsIGNvbnN0IGNoYXIgKnJ1bmUsIGludCBkZWJ1ZywKIAogICAgIGNsb3NlKHNl bmRfZmQpOwogICAgIG1pZ3JhdGlvbl9jaGlsZF9yZXBvcnQocmVjdl9mZCk7Ci0gICAgZXhpdCgt RVJST1JfQkFERkFJTCk7CisgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogfQogCiBzdGF0aWMgdm9p ZCBtaWdyYXRlX3JlY2VpdmUoaW50IGRlYnVnLCBpbnQgZGFlbW9uaXplLCBpbnQgbW9uaXRvciwK QEAgLTQ0NzAsNyArNDQ3MCw3IEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGVfcmVjZWl2ZShpbnQgZGVi dWcsIGludCBkYWVtb25pemUsIGludCBtb25pdG9yLAogICAgIGlmIChyYyA8IDApIHsKICAgICAg ICAgZnByaW50ZihzdGRlcnIsICJtaWdyYXRpb24gdGFyZ2V0OiBEb21haW4gY3JlYXRpb24gZmFp bGVkIgogICAgICAgICAgICAgICAgICIgKGNvZGUgJWQpLlxuIiwgcmMpOwotICAgICAgICBleGl0 KC1yYyk7CisgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgICB9CiAKICAgICBkb21pZCA9 IHJjOwpAQCAtNDUwOCw3ICs0NTA4LDcgQEAgc3RhdGljIHZvaWQgbWlncmF0ZV9yZWNlaXZlKGlu dCBkZWJ1ZywgaW50IGRhZW1vbml6ZSwgaW50IG1vbml0b3IsCiAgICAgICAgICAgICAgICAgICAg ICJGYWlsZWQgdG8gdW5wYXVzZSBkb21haW4gJXMgKGlkOiAldSk6JWRcbiIsCiAgICAgICAgICAg ICAgICAgICAgIGNvbW1vbl9kb21uYW1lLCBkb21pZCwgcmMpOwogCi0gICAgICAgIGV4aXQocmMg PyAtRVJST1JfRkFJTDogMCk7CisgICAgICAgIGV4aXQocmMgPyBFWElUX0ZBSUxVUkUgOiBFWElU X1NVQ0NFU1MpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8qIGRvIG5vdGhpbmcgKi8KICAgICAg ICAgYnJlYWs7CkBAIC00NTIxLDcgKzQ1MjEsNyBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlX3JlY2Vp dmUoaW50IGRlYnVnLCBpbnQgZGFlbW9uaXplLCBpbnQgbW9uaXRvciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWlncmF0ZV9yZWNlaXZlcl9yZWFkeSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mKG1pZ3JhdGVfcmVjZWl2ZXJfcmVhZHkpLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAibWlncmF0aW9uIGFjayBzdHJlYW0iLCAicmVhZHkgbWVzc2FnZSIp OwotICAgIGlmIChyYykgZXhpdCgtcmMpOworICAgIGlmIChyYykgZXhpdChFWElUX0ZBSUxVUkUp OwogCiAgICAgcmMgPSBtaWdyYXRlX3JlYWRfZml4ZWRtZXNzYWdlKHJlY3ZfZmQsIG1pZ3JhdGVf cGVybWlzc2lvbl90b19nbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mKG1pZ3JhdGVfcGVybWlzc2lvbl90b19nbyksCkBAIC00NTQ2LDE0ICs0NTQ2LDE0IEBAIHN0 YXRpYyB2b2lkIG1pZ3JhdGVfcmVjZWl2ZShpbnQgZGVidWcsIGludCBkYWVtb25pemUsIGludCBt b25pdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlncmF0ZV9yZXBvcnQsIHNp emVvZihtaWdyYXRlX3JlcG9ydCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWln cmF0aW9uIGFjayBzdHJlYW0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1Y2Nl c3MvZmFpbHVyZSByZXBvcnQiKTsKLSAgICBpZiAocmMyKSBleGl0KC1FUlJPUl9CQURGQUlMKTsK KyAgICBpZiAocmMyKSBleGl0KEVYSVRfRkFJTFVSRSk7CiAKICAgICByY19idWYgPSAtcmM7CiAg ICAgYXNzZXJ0KCEhcmNfYnVmID09ICEhcmMpOwogICAgIHJjMiA9IGxpYnhsX3dyaXRlX2V4YWN0 bHkoY3R4LCBzZW5kX2ZkLCAmcmNfYnVmLCAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIm1pZ3JhdGlvbiBhY2sgc3RyZWFtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJzdWNjZXNzL2ZhaWx1cmUgY29kZSIpOwotICAgIGlmIChyYzIpIGV4aXQoLUVSUk9SX0JBREZB SUwpOworICAgIGlmIChyYzIpIGV4aXQoRVhJVF9GQUlMVVJFKTsKIAogICAgIGlmIChyYykgewog ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIm1pZ3JhdGlvbiB0YXJnZXQ6IEZhaWx1cmUsIGRlc3Ry b3lpbmcgb3VyIGNvcHkuXG4iKTsKQEAgLTQ1NjIsNyArNDU2Miw3IEBAIHN0YXRpYyB2b2lkIG1p Z3JhdGVfcmVjZWl2ZShpbnQgZGVidWcsIGludCBkYWVtb25pemUsIGludCBtb25pdG9yLAogICAg ICAgICBpZiAocmMyKSB7CiAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIm1pZ3JhdGlvbiB0 YXJnZXQ6IEZhaWxlZCB0byBkZXN0cm95IG91ciBjb3B5IgogICAgICAgICAgICAgICAgICAgICAi IChjb2RlICVkKS5cbiIsIHJjMik7Ci0gICAgICAgICAgICBleGl0KC1FUlJPUl9CQURGQUlMKTsK KyAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgICAgICAgfQogCiAgICAgICAgIGZw cmludGYoc3RkZXJyLCAibWlncmF0aW9uIHRhcmdldDogQ2xlYW51cCBPSywgZ3JhbnRpbmcgc2Vu ZGVyIgpAQCAtNDU3MywxMCArNDU3MywxMCBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlX3JlY2VpdmUo aW50IGRlYnVnLCBpbnQgZGFlbW9uaXplLCBpbnQgbW9uaXRvciwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2YobWlncmF0ZV9wZXJtaXNzaW9uX3RvX2dvKSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWlncmF0aW9uIGFjayBzdHJlYW0iLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwZXJtaXNzaW9uIHRvIHNlbmRlciB0byBo YXZlIGRvbWFpbiBiYWNrIik7Ci0gICAgICAgIGlmIChyYzIpIGV4aXQoLUVSUk9SX0JBREZBSUwp OworICAgICAgICBpZiAocmMyKSBleGl0KEVYSVRfRkFJTFVSRSk7CiAgICAgfQogCi0gICAgZXhp dCgwKTsKKyAgICBleGl0KEVYSVRfU1VDQ0VTUyk7CiB9CiAKIGludCBtYWluX3Jlc3RvcmUoaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQpAQCAtNDY3MSwxMyArNDY3MSwxMyBAQCBpbnQgbWFpbl9taWdy YXRlX3JlY2VpdmUoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAgICAgaWYgKGFyZ2Mtb3B0aW5k ICE9IDApIHsKICAgICAgICAgaGVscCgibWlncmF0ZS1yZWNlaXZlIik7Ci0gICAgICAgIHJldHVy biAyOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwogICAgIH0KICAgICBtaWdyYXRlX3Jl Y2VpdmUoZGVidWcsIGRhZW1vbml6ZSwgbW9uaXRvciwKICAgICAgICAgICAgICAgICAgICAgU1RE T1VUX0ZJTEVOTywgU1RESU5fRklMRU5PLAogICAgICAgICAgICAgICAgICAgICBjaGVja3BvaW50 ZWQpOwogCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKIH0KIAogaW50 IG1haW5fc2F2ZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCkBAIC00Nzc2LDcgKzQ3NzYsNyBAQCBp bnQgbWFpbl9taWdyYXRlKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICB9CiAKICAgICBtaWdy YXRlX2RvbWFpbihkb21pZCwgcnVuZSwgZGVidWcsIGNvbmZpZ19maWxlbmFtZSk7Ci0gICAgcmV0 dXJuIDA7CisgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKIH0KICNlbmRpZgogCi0tIAoyLjUuMAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==