From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhongze Liu Subject: [PATCH v3 6/7] libxl:xl: add parsing code to parse "libxl_static_sshm" from xl config files Date: Thu, 19 Oct 2017 10:36:34 +0800 Message-ID: <20171019023635.19812-7-blackskygg@gmail.com> References: <20171019023635.19812-1-blackskygg@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171019023635.19812-1-blackskygg@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.xen.org Cc: Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu , Zhongze Liu List-Id: xen-devel@lists.xenproject.org QWRkIHRoZSBwYXJzaW5nIHV0aWxzIGZvciB0aGUgbmV3bHkgaW50cm9kdWNlZCBsaWJ4bF9zdGF0 aWNfc3NobSBzdHJ1Y3QKdG8gdGhlIGxpYnhsL2xpYnhsdV8qIGZhbWlseS4gQW5kIGFkZCByZWFs YXRlZCBwYXJzaW5nIGNvZGUgaW4geGwgdG8KcGFyc2UgdGhlIHN0cnVjdCBmcm9tIHhsIGNvbmZp ZyBmaWxlcy4gVGhpcyBpcyBmb3IgdGhlIHByb3Bvc2FsICJBbGxvdwpzZXR0aW5nIHVwIHNoYXJl ZCBtZW1vcnkgYXJlYXMgYmV0d2VlbiBWTXMgZnJvbSB4bCBjb25maWcgZmlsZSIgKHNlZSBbMV0p LgoKWzFdIGh0dHBzOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE3 LTA4L21zZzAzMjQyLmh0bWwKClNpZ25lZC1vZmYtYnk6IFpob25nemUgTGl1IDxibGFja3NreWdn QGdtYWlsLmNvbT4KCkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDYzogSWFuIEph Y2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkg PHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBh cm0uY29tPgpDYzogeGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKLS0tCiB0b29scy9saWJ4bC9NYWtl ZmlsZSAgICAgIHwgICAyICstCiB0b29scy9saWJ4bC9saWJ4bHVfc3NobS5jIHwgMjEwICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRvb2xzL2xpYnhsL2xp YnhsdXRpbC5oICAgfCAgIDYgKysKIHRvb2xzL3hsL3hsX3BhcnNlLmMgICAgICAgfCAgMjQgKysr KystCiA0IGZpbGVzIGNoYW5nZWQsIDI0MCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2xpYnhsL2xpYnhsdV9zc2htLmMKCmRpZmYgLS1naXQg YS90b29scy9saWJ4bC9NYWtlZmlsZSBiL3Rvb2xzL2xpYnhsL01ha2VmaWxlCmluZGV4IDkxYmM3 MGNkYTIuLjI1ZTZmMGJkN2YgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL01ha2VmaWxlCisrKyBi L3Rvb2xzL2xpYnhsL01ha2VmaWxlCkBAIC0xNzYsNyArMTc2LDcgQEAgQVVUT0lOQ1M9IGxpYnhs dV9jZmdfeS5oIGxpYnhsdV9jZmdfbC5oIF9saWJ4bF9saXN0LmggX3BhdGhzLmggXAogQVVUT1NS Q1M9IGxpYnhsdV9jZmdfeS5jIGxpYnhsdV9jZmdfbC5jCiBBVVRPU1JDUyArPSBfbGlieGxfc2F2 ZV9tc2dzX2NhbGxvdXQuYyBfbGlieGxfc2F2ZV9tc2dzX2hlbHBlci5jCiBMSUJYTFVfT0JKUyA9 IGxpYnhsdV9jZmdfeS5vIGxpYnhsdV9jZmdfbC5vIGxpYnhsdV9jZmcubyBcCi0JbGlieGx1X2Rp c2tfbC5vIGxpYnhsdV9kaXNrLm8gbGlieGx1X3ZpZi5vIGxpYnhsdV9wY2kubworCWxpYnhsdV9k aXNrX2wubyBsaWJ4bHVfZGlzay5vIGxpYnhsdV92aWYubyBsaWJ4bHVfcGNpLm8gbGlieGx1X3Nz aG0ubwogJChMSUJYTFVfT0JKUyk6IENGTEFHUyArPSAkKENGTEFHU19saWJ4ZW5jdHJsKSAjIEZv ciB4ZW50b29sbG9nLmgKIAogJChURVNUX1BST0dfT0JKUykgX2xpYnhsLmFwaS1mb3ItY2hlY2s6 IENGTEFHUyArPSAkKENGTEFHU19saWJ4ZW50b29sbG9nKSAkKENGTEFHU19saWJ4ZW50b29sY29y ZSkKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsdV9zc2htLmMgYi90b29scy9saWJ4bC9s aWJ4bHVfc3NobS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjUyNzZm ZjkzOTUKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9saWJ4bC9saWJ4bHVfc3NobS5jCkBAIC0w LDAgKzEsMjEwIEBACisjaW5jbHVkZSAibGlieGxfb3NkZXBzLmgiIC8qIG11c3QgY29tZSBiZWZv cmUgYW55IG90aGVyIGhlYWRlcnMgKi8KKyNpbmNsdWRlICJsaWJ4bHVfaW50ZXJuYWwuaCIKKyNp bmNsdWRlICJ4ZW5jdHJsLmgiCisKKyNpbmNsdWRlIDxjdHlwZS5oPgorCisjZGVmaW5lIFBBUkFN X1JFKEVYUFIpICJeXFxzKiIgRVhQUiAiXFxzKigsfCQpIgorI2RlZmluZSBXT1JEX1JFICAgICAg ICAgIihbX2EtekEtWjAtOV0rKSIKKyNkZWZpbmUgRVFVX1JFICAgICAgICAgUEFSQU1fUkUoV09S RF9SRSAiXFxzKj1cXHMqIiBXT1JEX1JFKQorCisjZGVmaW5lIFJFVF9JTlZBTChtc2csIGN1cnJf c3RyKSAgZG8geyAgICAgICAgICAgICAgXAorICAgICAgICB4bHVfX3NzaG1fZXJyKGNmZywgbXNn LCBjdXJyX3N0cik7ICAgICAgICAgIFwKKyAgICAgICAgcmMgPSBFSU5WQUw7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGdvdG8gb3V0OyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUoMCkKKworLyogc2V0IGEgbWVtYmVyIGlu IGxpYnhsX3N0YXRpY19zaG0gYW5kIHJlcG9ydCBhbiBlcnJvciBpZiBpdCdzIHJlc3BlY2lmaWVk LAorICogQGN1cnJfc3RyIGluZGljYXRlcyB0aGUgaGVhZCBvZiB0aGUgcmVtYWluaW5nIHN0cmlu Zy4gKi8KKyNkZWZpbmUgU0VUX1ZBTCh2YXIsIG5hbWUsIHR5cGUsIHZhbHVlLCBjdXJyX3N0cikg IGRvIHsgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKCh2YXIpICE9IExJQlhMX1NTSE1f IyN0eXBlIyNfVU5LTk9XTiAmJiAodmFyKSAhPSB2YWx1ZSkgeyAgIFwKKyAgICAgICAgICAgIFJF VF9JTlZBTCgiXCIiIG5hbWUgIlwiIHJlc3BlY2lmaWVkIiwgY3Vycl9zdHIpOyAgICAgICAgICAg IFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKHZhcikgPSB2YWx1ZTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlKDApCisK Kworc3RhdGljIHZvaWQgeGx1X19zc2htX2VycihYTFVfQ29uZmlnICpjZmcsIGNvbnN0IGNoYXIg Km1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY3Vycl9zdHIpIHsK KyAgICBmcHJpbnRmKGNmZy0+cmVwb3J0LAorICAgICAgICAgICAgIiVzOiBjb25maWcgcGFyc2lu ZyBlcnJvciBpbiBzaGFyZWRfbWVtb3J5OiAlcyBhdCAnJXMnXG4iLAorICAgICAgICAgICAgY2Zn LT5jb25maWdfc291cmNlLCBtc2csIGN1cnJfc3RyKTsKK30KKworc3RhdGljIGludCBwYXJzZV9w cm90KFhMVV9Db25maWcgKmNmZywgY2hhciAqc3RyLCBsaWJ4bF9zc2htX3Byb3QgKnByb3QpCit7 CisgICAgaW50IHJjOworICAgIGxpYnhsX3NzaG1fcHJvdCBuZXdfcHJvdDsKKworICAgIGlmICgh c3RyY21wKHN0ciwgInJ3IikpIHsKKyAgICAgICAgbmV3X3Byb3QgPSBMSUJYTF9TU0hNX1BST1Rf Ulc7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUkVUX0lOVkFMKCJpbnZhbGlkIHBlcm1pc3Npb24g ZmxhZ3MiLCBzdHIpOworICAgIH0KKworICAgIFNFVF9WQUwoKnByb3QsICJwZXJtaXNzaW9uIGZs YWdzIiwgUFJPVCwgbmV3X3Byb3QsIHN0cik7CisKKyAgICByYyA9IDA7CisKKyBvdXQ6CisgICAg cmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IHBhcnNlX2NhY2hlcG9saWN5KFhMVV9Db25maWcg KmNmZywgY2hhciAqc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zc2ht X2NhY2hlcG9saWN5ICpwb2xpY3kpCit7CisgICAgaW50IHJjOworICAgIGxpYnhsX3NzaG1fY2Fj aGVwb2xpY3kgbmV3X3BvbGljeTsKKworICAgIGlmICghc3RyY21wKHN0ciwgIkFSTV9ub3JtYWwi KSkgeworICAgICAgICBuZXdfcG9saWN5ID0gTElCWExfU1NITV9DQUNIRVBPTElDWV9BUk1fTk9S TUFMOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChzdHIsICJ4ODZfbm9ybWFsIikpIHsKKyAgICAg ICAgbmV3X3BvbGljeSA9IExJQlhMX1NTSE1fQ0FDSEVQT0xJQ1lfWDg2X05PUk1BTDsKKyAgICB9 IGVsc2UgeworICAgICAgICBSRVRfSU5WQUwoImludmFsaWQgY2FjaGUgcG9saWN5Iiwgc3RyKTsK KyAgICB9CisKKyAgICBTRVRfVkFMKCpwb2xpY3ksICJjYWNoZSBwb2xpY3kiLCBDQUNIRVBPTElD WSwgbmV3X3BvbGljeSwgc3RyKTsKKyAgICByYyA9IDA7CisKKyBvdXQ6CisgICAgcmV0dXJuIHJj OworfQorCisvKiBoYW5kbGUga2V5ID0gdmFsdWUgcGFpcnMgKi8KK3N0YXRpYyBpbnQgaGFuZGxl X2VxdShYTFVfQ29uZmlnICpjZmcsIGNoYXIgKmtleSwgY2hhciAqdmFsLAorICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX3N0YXRpY19zaG0gKnNzaG0pCit7CisgICAgaW50IHJjOworCisgICAg aWYgKCFzdHJjbXAoa2V5LCAiaWQiKSkgeworICAgICAgICBpZiAoc3RybGVuKHZhbCkgPiBMSUJY TF9TU0hNX0lEX01BWExFTikgeyBSRVRfSU5WQUwoImlkIHRvbyBsb25nIiwgdmFsKTsgfQorICAg ICAgICBpZiAoc3NobS0+aWQgJiYgIXN0cmNtcChzc2htLT5pZCwgdmFsKSkgeworICAgICAgICAg ICAgUkVUX0lOVkFMKCJpZCByZXNwZWNpZmllZCIsIHZhbCk7CisgICAgICAgIH0KKworICAgICAg ICBzc2htLT5pZCA9IHN0cmR1cCh2YWwpOworICAgICAgICBpZiAoIXNzaG0tPmlkKSB7CisgICAg ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInNzaG0gcGFyc2VyIG91dCBvZiBtZW1vcnlcbiIpOwor ICAgICAgICAgICAgcmMgPSBFTk9NRU07CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAg fQorICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJyb2xlIikpIHsKKyAgICAgICAgbGlieGxf c3NobV9yb2xlIG5ld19yb2xlOworCisgICAgICAgIGlmICghc3RyY21wKCJtYXN0ZXIiLCB2YWwp KSB7CisgICAgICAgICAgICBuZXdfcm9sZSA9IExJQlhMX1NTSE1fUk9MRV9NQVNURVI7CisgICAg ICAgIH0gZWxzZSBpZiAoIXN0cmNtcCgic2xhdmUiLCB2YWwpKSB7CisgICAgICAgICAgICBuZXdf cm9sZSA9IExJQlhMX1NTSE1fUk9MRV9TTEFWRTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgIFJFVF9JTlZBTCgiaW52YWxpZCByb2xlIiwgdmFsKTsKKyAgICAgICAgfQorCisgICAgICAg IFNFVF9WQUwoc3NobS0+cm9sZSwgInJvbGUiLCBST0xFLCBuZXdfcm9sZSwgdmFsKTsKKyAgICB9 IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiYmVnaW4iKSB8fAorICAgICAgICAgICAgICAgIXN0cmNt cChrZXksICJlbmQiKSB8fAorICAgICAgICAgICAgICAgIXN0cmNtcChrZXksICJvZmZzZXQiKSkg eworICAgICAgICBjaGFyICplbmRwdHI7CisgICAgICAgIGludCBiYXNlID0gMTA7CisgICAgICAg IHVpbnQ2NF90IG5ld19hZGRyOworCisgICAgICAgIC8qIENvdWxkIGJlIGluIGhleCBmb3JtLiBO b3RlIHRoYXQgd2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0aGUgbGVuZ3RoIGhlcmUsCisgICAgICAg ICAqIGZvciB2YWxbXSBpcyBOVUxMLXRlcm1pbmF0ZWQgKi8KKyAgICAgICAgaWYgKHZhbFswXSA9 PSAnMCcgJiYgdmFsWzFdID09ICd4JykgeyBiYXNlID0gMTY7IH0KKyAgICAgICAgbmV3X2FkZHIg PSBzdHJ0b3VsbCh2YWwsICZlbmRwdHIsIGJhc2UpOworICAgICAgICBpZiAoZXJybm8gPT0gRVJB TkdFIHx8ICplbmRwdHIpCisgICAgICAgICAgICBSRVRfSU5WQUwoImludmFsaWQgYmVnaW4vZW5k L29mZnNldCIsIHZhbCk7CisgICAgICAgIGlmIChuZXdfYWRkciAmIH5YQ19QQUdFX01BU0spCisg ICAgICAgICAgICBSRVRfSU5WQUwoImJlZ2luL2VuZC9vZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUg b2YgNEsiLCB2YWwpOworCisgICAgICAgIC8qIGJlZ2luIG9yIGVuZCAqLworICAgICAgICBpZiAo a2V5WzBdID09ICdiJykgeworICAgICAgICAgICAgU0VUX1ZBTChzc2htLT5iZWdpbiwgImJlZ2lu bmluZyBhZGRyZXNzIiwgUkFOR0UsIG5ld19hZGRyLCB2YWwpOworICAgICAgICB9IGVsc2UgaWYo a2V5WzBdID09ICdlJyl7CisgICAgICAgICAgICBTRVRfVkFMKHNzaG0tPmVuZCwgImVuZGluZyBh ZGRyZXNzIiwgUkFOR0UsIG5ld19hZGRyLCB2YWwpOworICAgICAgICB9IGVsc2UgeworICAgICAg ICAgICAgU0VUX1ZBTChzc2htLT5vZmZzZXQsICJvZmZzZXQiLCBSQU5HRSwgbmV3X2FkZHIsIHZh bCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAicHJvdCIpKSB7Cisg ICAgICAgIHJjID0gcGFyc2VfcHJvdChjZmcsIHZhbCwgJnNzaG0tPnByb3QpOworICAgICAgICBp ZiAocmMpIHsgZ290byBvdXQ7IH0KKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAiY2FjaGVf cG9saWN5IikpIHsKKyAgICAgICAgcmMgPSBwYXJzZV9jYWNoZXBvbGljeShjZmcsIHZhbCwgJnNz aG0tPmNhY2hlX3BvbGljeSk7CisgICAgICAgIGlmIChyYykgeyBnb3RvIG91dDsgfQorICAgIH0g ZWxzZSB7CisgICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCBvcHRpb24iLCBrZXkpOworICAgIH0K KworICAgIHJjID0gMDsKKworIG91dDoKKyAgICByZXR1cm4gcmM7Cit9CisKK2ludCB4bHVfc3No bV9wYXJzZShYTFVfQ29uZmlnICpjZmcsIGNvbnN0IGNoYXIgKnNwZWMsCisgICAgICAgICAgICAg ICAgICAgbGlieGxfc3RhdGljX3NobSAqc3NobSkKK3sKKyAgICBpbnQgcmM7CisgICAgcmVnZXhf dCBlcXVfcmVjOworICAgIGNoYXIgKmJ1ZjIgPSBOVUxMLCAqcHRyID0gTlVMTDsKKyAgICByZWdt YXRjaF90IHBtYXRjaFszXTsKKworICAgIHJjID0gcmVnY29tcCgmZXF1X3JlYywgRVFVX1JFLCBS RUdfRVhURU5ERUQpOworICAgIGlmIChyYykgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInNz aG0gcGFyc2VyIGZhaWxlZCB0byBpbml0aWFsaXplXG4iKTsKKyAgICAgICAgZ290byBvdXQ7Cisg ICAgfQorCisgICAgYnVmMiA9IHB0ciA9IHN0cmR1cChzcGVjKTsKKyAgICBpZiAoIWJ1ZjIpIHsK KyAgICAgICAgZnByaW50ZihzdGRlcnIsICJzc2htIHBhcnNlciBvdXQgb2YgbWVtb3J5XG4iKTsK KyAgICAgICAgcmMgPSBFTk9NRU07CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIC8q IG1haW4gcGFyc2luZyBsb29wICovCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgaWYgKCEq cHRyKSB7IGJyZWFrOyB9CisgICAgICAgIGlmIChyZWdleGVjKCZlcXVfcmVjLCBwdHIsIDMsIHBt YXRjaCwgMCkpCisgICAgICAgICAgICBSRVRfSU5WQUwoInVucmVjb2duaXplZCB0b2tlbiIsIHB0 cik7CisKKyAgICAgICAgcHRyW3BtYXRjaFsxXS5ybV9lb10gPSAnXDAnOworICAgICAgICBwdHJb cG1hdGNoWzJdLnJtX2VvXSA9ICdcMCc7CisgICAgICAgIHJjID0gaGFuZGxlX2VxdShjZmcsIHB0 ciArIHBtYXRjaFsxXS5ybV9zbywKKyAgICAgICAgICAgICAgICAgICAgICAgIHB0ciArIHBtYXRj aFsyXS5ybV9zbywgc3NobSk7CisgICAgICAgIGlmIChyYykgeyBnb3RvIG91dDsgfQorCisgICAg ICAgIHB0ciArPSBwbWF0Y2hbMF0ucm1fZW87CisgICAgfQorCisgICAgaWYgKCpwdHIpIHsgUkVU X0lOVkFMKCJpbnZhbGlkIHN5bnRheCIsIHB0cik7IH0KKworICAgIC8qIGRvIHNvbWUgZWFybHkg Y2hlY2tzICovCisgICAgaWYgKCFzc2htLT5pZCkgeworICAgICAgICBSRVRfSU5WQUwoImlkIG5v dCBzcGVjaWZpZWQiLCBzcGVjKTsKKyAgICB9CisgICAgaWYgKHNzaG0tPmJlZ2luID09IExJQlhM X1NTSE1fUkFOR0VfVU5LTk9XTikgeworICAgICAgICBSRVRfSU5WQUwoImJlZ2luIGFkZHJlc3Mg bm90IHNwZWNpZmllZCIsIHNwZWMpOworICAgIH0KKyAgICBpZiAoc3NobS0+ZW5kID09IExJQlhM X1NTSE1fUkFOR0VfVU5LTk9XTikgeworICAgICAgICBSRVRfSU5WQUwoImVuZCBhZGRyZXNzIG5v dCBzcGVjaWZpZWQiLCBzcGVjKTsKKyAgICB9CisgICAgaWYgKHNzaG0tPmJlZ2luID4gc3NobS0+ ZW5kKSB7CisgICAgICAgIFJFVF9JTlZBTCgiYmVnaW4gYWRkcmVzcyBsYXJnZXIgdGhhdCBlbmQg YWRkcmVzcyIsIHNwZWMpOworICAgIH0KKworICAgIHJjID0gMDsKKworIG91dDoKKyAgICBpZiAo YnVmMikgeyBmcmVlKGJ1ZjIpOyB9CisgICAgcmVnZnJlZSgmZXF1X3JlYyk7CisgICAgcmV0dXJu IHJjOworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1iYXNp Yy1vZmZzZXQ6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYg LS1naXQgYS90b29scy9saWJ4bC9saWJ4bHV0aWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsdXRpbC5o CmluZGV4IGU4MWI2NDRjMDEuLmVlMzljYjViZGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xp YnhsdXRpbC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsdXRpbC5oCkBAIC0xMTgsNiArMTE4LDEy IEBAIGludCB4bHVfcmRtX3BhcnNlKFhMVV9Db25maWcgKmNmZywgbGlieGxfcmRtX3Jlc2VydmUg KnJkbSwgY29uc3QgY2hhciAqc3RyKTsKIGludCB4bHVfdmlmX3BhcnNlX3JhdGUoWExVX0NvbmZp ZyAqY2ZnLCBjb25zdCBjaGFyICpyYXRlLAogICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9k ZXZpY2VfbmljICpuaWMpOwogCisvKgorICogc3RhdGljIHNoYXJlZCBtZW1vcnkgc3BlY2lmaWNh dGlvbiBwYXJzaW5nCisgKi8KK2ludCB4bHVfc3NobV9wYXJzZShYTFVfQ29uZmlnICpjZmcsIGNv bnN0IGNoYXIgKnNwZWMsCisgICAgICAgICAgICAgICAgICAgbGlieGxfc3RhdGljX3NobSAqc3No bSk7CisKICNlbmRpZiAvKiBMSUJYTFVUSUxfSCAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvdG9vbHMv eGwveGxfcGFyc2UuYyBiL3Rvb2xzL3hsL3hsX3BhcnNlLmMKaW5kZXggOWE2OTJkNWFlNi4uYmY0 MjVmMGZmMyAxMDA2NDQKLS0tIGEvdG9vbHMveGwveGxfcGFyc2UuYworKysgYi90b29scy94bC94 bF9wYXJzZS5jCkBAIC04NjAsNyArODYwLDcgQEAgdm9pZCBwYXJzZV9jb25maWdfZGF0YShjb25z dCBjaGFyICpjb25maWdfc291cmNlLAogICAgIGxvbmcgbCwgdmNwdXMgPSAwOwogICAgIFhMVV9D b25maWcgKmNvbmZpZzsKICAgICBYTFVfQ29uZmlnTGlzdCAqY3B1cywgKnZiZHMsICpuaWNzLCAq cGNpcywgKmN2ZmJzLCAqY3B1aWRzLCAqdnRwbXMsCi0gICAgICAgICAgICAgICAgICAgKnVzYmN0 cmxzLCAqdXNiZGV2cywgKnA5ZGV2cywgKnZkaXNwbHM7CisgICAgICAgICAgICAgICAgICAgKnVz YmN0cmxzLCAqdXNiZGV2cywgKnA5ZGV2cywgKnZkaXNwbHMsICpzc2htczsKICAgICBYTFVfQ29u ZmlnTGlzdCAqY2hhbm5lbHMsICppb3BvcnRzLCAqaXJxcywgKmlvbWVtLCAqdmlyaWRpYW4sICpk dGRldnMsCiAgICAgICAgICAgICAgICAgICAgKm1jYV9jYXBzOwogICAgIGludCBudW1faW9wb3J0 cywgbnVtX2lycXMsIG51bV9pb21lbSwgbnVtX2NwdXMsIG51bV92aXJpZGlhbiwgbnVtX21jYV9j YXBzOwpAQCAtMTU1NSw2ICsxNTU1LDI4IEBAIHZvaWQgcGFyc2VfY29uZmlnX2RhdGEoY29uc3Qg Y2hhciAqY29uZmlnX3NvdXJjZSwKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmICgheGx1X2Nm Z19nZXRfbGlzdCAoY29uZmlnLCAic3RhdGljX3NobSIsICZzc2htcywgMCwgMCkpIHsKKyAgICAg ICAgZF9jb25maWctPm51bV9zc2htcyA9IDA7CisgICAgICAgIGRfY29uZmlnLT5zc2htcyA9IE5V TEw7CisgICAgICAgIHdoaWxlICgoYnVmID0geGx1X2NmZ19nZXRfbGlzdGl0ZW0gKHNzaG1zLCBk X2NvbmZpZy0+bnVtX3NzaG1zKSkgIT0gTlVMTCkgeworICAgICAgICAgICAgbGlieGxfc3RhdGlj X3NobSAqc3NobTsKKyAgICAgICAgICAgIGNoYXIgKmJ1ZjIgPSBzdHJkdXAoYnVmKTsKKyAgICAg ICAgICAgIGludCByZXQ7CisKKyAgICAgICAgICAgIHNzaG0gPSBBUlJBWV9FWFRFTkRfSU5JVF9O T0RFVklEKGRfY29uZmlnLT5zc2htcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRfY29uZmlnLT5udW1fc3NobXMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9zdGF0aWNfc2htX2luaXQpOworICAgICAgICAg ICAgcmV0ID0geGx1X3NzaG1fcGFyc2UoY29uZmlnLCBidWYyLCBzc2htKTsKKyAgICAgICAgICAg IGlmIChyZXQpIHsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICJ4bDogSW52YWxpZCBhcmd1bWVudCBmb3Igc3RhdGljX3NobTogJXMiLCBi dWYyKTsKKyAgICAgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CisgICAgICAgICAgICB9 CisKKyAgICAgICAgICAgIGZyZWUoYnVmMik7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAo IXhsdV9jZmdfZ2V0X2xpc3QoY29uZmlnLCAicDkiLCAmcDlkZXZzLCAwLCAwKSkgewogICAgICAg ICBsaWJ4bF9kZXZpY2VfcDkgKnA5OwogICAgICAgICBjaGFyICpzZWN1cml0eV9tb2RlbCA9IE5V TEw7Ci0tIAoyLjE0LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK