From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v9 5/7] libxl:xl: add parsing code to parse "libxl_static_sshm" from xl config files Date: Wed, 5 Dec 2018 14:16:01 -0800 Message-ID: <1544048163-27499-5-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Stefano Stabellini , sstabellini@kernel.org, wei.liu2@citrix.com, blackskygg@gmail.com, ian.jackson@eu.citrix.com, julien.grall@arm.com List-Id: xen-devel@lists.xenproject.org RnJvbTogWmhvbmd6ZSBMaXUgPGJsYWNrc2t5Z2dAZ21haWwuY29tPgoKQWRkIHRoZSBwYXJzaW5n IHV0aWxzIGZvciB0aGUgbmV3bHkgaW50cm9kdWNlZCBsaWJ4bF9zdGF0aWNfc3NobSBzdHJ1Y3QK dG8gdGhlIGxpYnhsL2xpYnhsdV8qIGZhbWlseS4gQW5kIGFkZCByZWFsYXRlZCBwYXJzaW5nIGNv ZGUgaW4geGwgdG8KcGFyc2UgdGhlIHN0cnVjdCBmcm9tIHhsIGNvbmZpZyBmaWxlcy4gVGhpcyBp cyBmb3IgdGhlIHByb3Bvc2FsICJBbGxvdwpzZXR0aW5nIHVwIHNoYXJlZCBtZW1vcnkgYXJlYXMg YmV0d2VlbiBWTXMgZnJvbSB4bCBjb25maWcgZmlsZSIgKHNlZSBbMV0pLgoKWzFdIGh0dHBzOi8v bGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE3LTA4L21zZzAzMjQyLmh0 bWwKClNpZ25lZC1vZmYtYnk6IFpob25nemUgTGl1IDxibGFja3NreWdnQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vc0B4aWxpbnguY29tPgoKQ2M6 IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tz b25AZXUuY2l0cml4LmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2Vy bmVsLm9yZz4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNjOiB4ZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwotLS0KQ2hhbmdlcyBpbiB2OToKLSByZW5hbWUgbWFzdGVyIHRv IG93bmVyIGFuZCBzbGF2ZSB0byBib3Jyb3dlcgoKQ2hhbmdlcyBpbiB2NToKLSByZW1vdmUgYWxp Z25tZW50IGNoZWNrcywgdGhleSB3ZXJlIG1vdmVkIHRvIGxpYnhsCi0tLQogdG9vbHMvbGlieGwv TWFrZWZpbGUgICAgICB8ICAgMiArLQogdG9vbHMvbGlieGwvbGlieGx1X3NzaG0uYyB8IDIwNiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0b29scy9saWJ4 bC9saWJ4bHV0aWwuaCAgIHwgICA2ICsrCiB0b29scy94bC94bF9wYXJzZS5jICAgICAgIHwgIDI1 ICsrKysrLQogNCBmaWxlcyBjaGFuZ2VkLCAyMzcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9saWJ4bC9saWJ4bHVfc3NobS5jCgpkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGwvTWFrZWZpbGUgYi90b29scy9saWJ4bC9NYWtlZmlsZQppbmRleCA1 M2FmMTg2Li5mM2RlMTg5IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9NYWtlZmlsZQorKysgYi90 b29scy9saWJ4bC9NYWtlZmlsZQpAQCAtMTc3LDcgKzE3Nyw3IEBAIEFVVE9JTkNTPSBsaWJ4bHVf Y2ZnX3kuaCBsaWJ4bHVfY2ZnX2wuaCBfbGlieGxfbGlzdC5oIF9wYXRocy5oIFwKIEFVVE9TUkNT PSBsaWJ4bHVfY2ZnX3kuYyBsaWJ4bHVfY2ZnX2wuYwogQVVUT1NSQ1MgKz0gX2xpYnhsX3NhdmVf bXNnc19jYWxsb3V0LmMgX2xpYnhsX3NhdmVfbXNnc19oZWxwZXIuYwogTElCWExVX09CSlMgPSBs aWJ4bHVfY2ZnX3kubyBsaWJ4bHVfY2ZnX2wubyBsaWJ4bHVfY2ZnLm8gXAotCWxpYnhsdV9kaXNr X2wubyBsaWJ4bHVfZGlzay5vIGxpYnhsdV92aWYubyBsaWJ4bHVfcGNpLm8KKwlsaWJ4bHVfZGlz a19sLm8gbGlieGx1X2Rpc2subyBsaWJ4bHVfdmlmLm8gbGlieGx1X3BjaS5vIGxpYnhsdV9zc2ht Lm8KICQoTElCWExVX09CSlMpOiBDRkxBR1MgKz0gJChDRkxBR1NfbGlieGVuY3RybCkgIyBGb3Ig eGVudG9vbGxvZy5oCiAKICQoVEVTVF9QUk9HX09CSlMpIF9saWJ4bC5hcGktZm9yLWNoZWNrOiBD RkxBR1MgKz0gJChDRkxBR1NfbGlieGVudG9vbGxvZykgJChDRkxBR1NfbGlieGVudG9vbGNvcmUp CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bHVfc3NobS5jIGIvdG9vbHMvbGlieGwvbGli eGx1X3NzaG0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDZlMzFkCi0t LSAvZGV2L251bGwKKysrIGIvdG9vbHMvbGlieGwvbGlieGx1X3NzaG0uYwpAQCAtMCwwICsxLDIw NiBAQAorI2luY2x1ZGUgImxpYnhsX29zZGVwcy5oIiAvKiBtdXN0IGNvbWUgYmVmb3JlIGFueSBv dGhlciBoZWFkZXJzICovCisjaW5jbHVkZSAibGlieGx1X2ludGVybmFsLmgiCisjaW5jbHVkZSAi eGVuY3RybC5oIgorCisjaW5jbHVkZSA8Y3R5cGUuaD4KKworI2RlZmluZSBQQVJBTV9SRShFWFBS KSAiXlxccyoiIEVYUFIgIlxccyooLHwkKSIKKyNkZWZpbmUgV09SRF9SRSAgICAgICAgICIoW19h LXpBLVowLTldKykiCisjZGVmaW5lIEVRVV9SRSAgICAgICAgIFBBUkFNX1JFKFdPUkRfUkUgIlxc cyo9XFxzKiIgV09SRF9SRSkKKworI2RlZmluZSBSRVRfSU5WQUwobXNnLCBjdXJyX3N0cikgIGRv IHsgICAgICAgICAgICAgIFwKKyAgICAgICAgeGx1X19zc2htX2VycihjZmcsIG1zZywgY3Vycl9z dHIpOyAgICAgICAgICBcCisgICAgICAgIHJjID0gRUlOVkFMOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAgICAgICBnb3RvIG91dDsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICB9IHdoaWxlKDApCisKKy8qIHNldCBhIG1lbWJlciBpbiBsaWJ4bF9z dGF0aWNfc2htIGFuZCByZXBvcnQgYW4gZXJyb3IgaWYgaXQncyByZXNwZWNpZmllZCwKKyAqIEBj dXJyX3N0ciBpbmRpY2F0ZXMgdGhlIGhlYWQgb2YgdGhlIHJlbWFpbmluZyBzdHJpbmcuICovCisj ZGVmaW5lIFNFVF9WQUwodmFyLCBuYW1lLCB0eXBlLCB2YWx1ZSwgY3Vycl9zdHIpICBkbyB7ICAg ICAgICAgICAgICAgICBcCisgICAgICAgIGlmICgodmFyKSAhPSBMSUJYTF9TU0hNXyMjdHlwZSMj X1VOS05PV04gJiYgKHZhcikgIT0gdmFsdWUpIHsgICBcCisgICAgICAgICAgICBSRVRfSU5WQUwo IlwiIiBuYW1lICJcIiByZXNwZWNpZmllZCIsIGN1cnJfc3RyKTsgICAgICAgICAgICBcCisgICAg ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgICAgICh2YXIpID0gdmFsdWU7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSgwKQorCisKK3N0YXRp YyB2b2lkIHhsdV9fc3NobV9lcnIoWExVX0NvbmZpZyAqY2ZnLCBjb25zdCBjaGFyICptc2csCisg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmN1cnJfc3RyKSB7CisgICAgZnBy aW50ZihjZmctPnJlcG9ydCwKKyAgICAgICAgICAgICIlczogY29uZmlnIHBhcnNpbmcgZXJyb3Ig aW4gc2hhcmVkX21lbW9yeTogJXMgYXQgJyVzJ1xuIiwKKyAgICAgICAgICAgIGNmZy0+Y29uZmln X3NvdXJjZSwgbXNnLCBjdXJyX3N0cik7Cit9CisKK3N0YXRpYyBpbnQgcGFyc2VfcHJvdChYTFVf Q29uZmlnICpjZmcsIGNoYXIgKnN0ciwgbGlieGxfc3NobV9wcm90ICpwcm90KQoreworICAgIGlu dCByYzsKKyAgICBsaWJ4bF9zc2htX3Byb3QgbmV3X3Byb3Q7CisKKyAgICBpZiAoIXN0cmNtcChz dHIsICJydyIpKSB7CisgICAgICAgIG5ld19wcm90ID0gTElCWExfU1NITV9QUk9UX1JXOworICAg IH0gZWxzZSB7CisgICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCBwZXJtaXNzaW9uIGZsYWdzIiwg c3RyKTsKKyAgICB9CisKKyAgICBTRVRfVkFMKCpwcm90LCAicGVybWlzc2lvbiBmbGFncyIsIFBS T1QsIG5ld19wcm90LCBzdHIpOworCisgICAgcmMgPSAwOworCisgb3V0OgorICAgIHJldHVybiBy YzsKK30KKworc3RhdGljIGludCBwYXJzZV9jYWNoZXBvbGljeShYTFVfQ29uZmlnICpjZmcsIGNo YXIgKnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfc3NobV9jYWNoZXBv bGljeSAqcG9saWN5KQoreworICAgIGludCByYzsKKyAgICBsaWJ4bF9zc2htX2NhY2hlcG9saWN5 IG5ld19wb2xpY3k7CisKKyAgICBpZiAoIXN0cmNtcChzdHIsICJBUk1fbm9ybWFsIikpIHsKKyAg ICAgICAgbmV3X3BvbGljeSA9IExJQlhMX1NTSE1fQ0FDSEVQT0xJQ1lfQVJNX05PUk1BTDsKKyAg ICB9IGVsc2UgaWYgKCFzdHJjbXAoc3RyLCAieDg2X25vcm1hbCIpKSB7CisgICAgICAgIG5ld19w b2xpY3kgPSBMSUJYTF9TU0hNX0NBQ0hFUE9MSUNZX1g4Nl9OT1JNQUw7CisgICAgfSBlbHNlIHsK KyAgICAgICAgUkVUX0lOVkFMKCJpbnZhbGlkIGNhY2hlIHBvbGljeSIsIHN0cik7CisgICAgfQor CisgICAgU0VUX1ZBTCgqcG9saWN5LCAiY2FjaGUgcG9saWN5IiwgQ0FDSEVQT0xJQ1ksIG5ld19w b2xpY3ksIHN0cik7CisgICAgcmMgPSAwOworCisgb3V0OgorICAgIHJldHVybiByYzsKK30KKwor LyogaGFuZGxlIGtleSA9IHZhbHVlIHBhaXJzICovCitzdGF0aWMgaW50IGhhbmRsZV9lcXUoWExV X0NvbmZpZyAqY2ZnLCBjaGFyICprZXksIGNoYXIgKnZhbCwKKyAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9zdGF0aWNfc2htICpzc2htKQoreworICAgIGludCByYzsKKworICAgIGlmICghc3Ry Y21wKGtleSwgImlkIikpIHsKKyAgICAgICAgaWYgKHNzaG0tPmlkICYmICFzdHJjbXAoc3NobS0+ aWQsIHZhbCkpIHsKKyAgICAgICAgICAgIFJFVF9JTlZBTCgiaWQgcmVzcGVjaWZpZWQiLCB2YWwp OworICAgICAgICB9CisKKyAgICAgICAgc3NobS0+aWQgPSBzdHJkdXAodmFsKTsKKyAgICAgICAg aWYgKCFzc2htLT5pZCkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJzc2htIHBhcnNl ciBvdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgICAgIHJjID0gRU5PTUVNOworICAgICAgICAg ICAgZ290byBvdXQ7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAicm9s ZSIpKSB7CisgICAgICAgIGxpYnhsX3NzaG1fcm9sZSBuZXdfcm9sZTsKKworICAgICAgICBpZiAo IXN0cmNtcCgib3duZXIiLCB2YWwpKSB7CisgICAgICAgICAgICBuZXdfcm9sZSA9IExJQlhMX1NT SE1fUk9MRV9PV05FUjsKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKCJib3Jyb3dlciIsIHZh bCkpIHsKKyAgICAgICAgICAgIG5ld19yb2xlID0gTElCWExfU1NITV9ST0xFX0JPUlJPV0VSOwor ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgUkVUX0lOVkFMKCJpbnZhbGlkIHJvbGUiLCB2 YWwpOworICAgICAgICB9CisKKyAgICAgICAgU0VUX1ZBTChzc2htLT5yb2xlLCAicm9sZSIsIFJP TEUsIG5ld19yb2xlLCB2YWwpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJiZWdpbiIp IHx8CisgICAgICAgICAgICAgICAhc3RyY21wKGtleSwgInNpemUiKSB8fAorICAgICAgICAgICAg ICAgIXN0cmNtcChrZXksICJvZmZzZXQiKSkgeworICAgICAgICBjaGFyICplbmRwdHI7CisgICAg ICAgIGludCBiYXNlID0gMTA7CisgICAgICAgIHVpbnQ2NF90IG5ld19hZGRyOworCisgICAgICAg IC8qIENvdWxkIGJlIGluIGhleCBmb3JtLiBOb3RlIHRoYXQgd2UgZG9uJ3QgbmVlZCB0byBjaGVj ayB0aGUgbGVuZ3RoIGhlcmUsCisgICAgICAgICAqIGZvciB2YWxbXSBpcyBOVUxMLXRlcm1pbmF0 ZWQgKi8KKyAgICAgICAgaWYgKHZhbFswXSA9PSAnMCcgJiYgdmFsWzFdID09ICd4JykgeyBiYXNl ID0gMTY7IH0KKyAgICAgICAgbmV3X2FkZHIgPSBzdHJ0b3VsbCh2YWwsICZlbmRwdHIsIGJhc2Up OworICAgICAgICBpZiAoZXJybm8gPT0gRVJBTkdFIHx8ICplbmRwdHIpCisgICAgICAgICAgICBS RVRfSU5WQUwoImludmFsaWQgYmVnaW4vc2l6ZS9vZmZzZXQiLCB2YWwpOworCisgICAgICAgIGlm IChrZXlbMF0gPT0gJ2InKSB7CisgICAgICAgICAgICBTRVRfVkFMKHNzaG0tPmJlZ2luLCAiYmVn aW5uaW5nIGFkZHJlc3MiLCBSQU5HRSwgbmV3X2FkZHIsIHZhbCk7CisgICAgICAgIH0gZWxzZSBp ZihrZXlbMF0gPT0gJ3MnKXsKKyAgICAgICAgICAgIFNFVF9WQUwoc3NobS0+c2l6ZSwgInNpemUi LCBSQU5HRSwgbmV3X2FkZHIsIHZhbCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBT RVRfVkFMKHNzaG0tPm9mZnNldCwgIm9mZnNldCIsIFJBTkdFLCBuZXdfYWRkciwgdmFsKTsKKyAg ICAgICAgfQorICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJwcm90IikpIHsKKyAgICAgICAg cmMgPSBwYXJzZV9wcm90KGNmZywgdmFsLCAmc3NobS0+cHJvdCk7CisgICAgICAgIGlmIChyYykg eyBnb3RvIG91dDsgfQorICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJjYWNoZV9wb2xpY3ki KSkgeworICAgICAgICByYyA9IHBhcnNlX2NhY2hlcG9saWN5KGNmZywgdmFsLCAmc3NobS0+Y2Fj aGVfcG9saWN5KTsKKyAgICAgICAgaWYgKHJjKSB7IGdvdG8gb3V0OyB9CisgICAgfSBlbHNlIHsK KyAgICAgICAgUkVUX0lOVkFMKCJpbnZhbGlkIG9wdGlvbiIsIGtleSk7CisgICAgfQorCisgICAg cmMgPSAwOworCisgb3V0OgorICAgIHJldHVybiByYzsKK30KKworaW50IHhsdV9zc2htX3BhcnNl KFhMVV9Db25maWcgKmNmZywgY29uc3QgY2hhciAqc3BlYywKKyAgICAgICAgICAgICAgICAgICBs aWJ4bF9zdGF0aWNfc2htICpzc2htKQoreworICAgIGludCByYzsKKyAgICByZWdleF90IGVxdV9y ZWM7CisgICAgY2hhciAqYnVmMiA9IE5VTEwsICpwdHIgPSBOVUxMOworICAgIHJlZ21hdGNoX3Qg cG1hdGNoWzNdOworCisgICAgcmMgPSByZWdjb21wKCZlcXVfcmVjLCBFUVVfUkUsIFJFR19FWFRF TkRFRCk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAic3NobSBwYXJz ZXIgZmFpbGVkIHRvIGluaXRpYWxpemVcbiIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisK KyAgICBidWYyID0gcHRyID0gc3RyZHVwKHNwZWMpOworICAgIGlmICghYnVmMikgeworICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgInNzaG0gcGFyc2VyIG91dCBvZiBtZW1vcnlcbiIpOworICAgICAg ICByYyA9IEVOT01FTTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgLyogbWFpbiBw YXJzaW5nIGxvb3AgKi8KKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBpZiAoISpwdHIpIHsg YnJlYWs7IH0KKyAgICAgICAgaWYgKHJlZ2V4ZWMoJmVxdV9yZWMsIHB0ciwgMywgcG1hdGNoLCAw KSkKKyAgICAgICAgICAgIFJFVF9JTlZBTCgidW5yZWNvZ25pemVkIHRva2VuIiwgcHRyKTsKKwor ICAgICAgICBwdHJbcG1hdGNoWzFdLnJtX2VvXSA9ICdcMCc7CisgICAgICAgIHB0cltwbWF0Y2hb Ml0ucm1fZW9dID0gJ1wwJzsKKyAgICAgICAgcmMgPSBoYW5kbGVfZXF1KGNmZywgcHRyICsgcG1h dGNoWzFdLnJtX3NvLAorICAgICAgICAgICAgICAgICAgICAgICAgcHRyICsgcG1hdGNoWzJdLnJt X3NvLCBzc2htKTsKKyAgICAgICAgaWYgKHJjKSB7IGdvdG8gb3V0OyB9CisKKyAgICAgICAgcHRy ICs9IHBtYXRjaFswXS5ybV9lbzsKKyAgICB9CisKKyAgICBpZiAoKnB0cikgeyBSRVRfSU5WQUwo ImludmFsaWQgc3ludGF4IiwgcHRyKTsgfQorCisgICAgLyogZG8gc29tZSBlYXJseSBjaGVja3Mg Ki8KKyAgICBpZiAoIXNzaG0tPmlkKSB7CisgICAgICAgIFJFVF9JTlZBTCgiaWQgbm90IHNwZWNp ZmllZCIsIHNwZWMpOworICAgIH0KKyAgICBpZiAoc3NobS0+YmVnaW4gPT0gTElCWExfU1NITV9S QU5HRV9VTktOT1dOKSB7CisgICAgICAgIFJFVF9JTlZBTCgiYmVnaW4gYWRkcmVzcyBub3Qgc3Bl Y2lmaWVkIiwgc3BlYyk7CisgICAgfQorICAgIGlmIChzc2htLT5zaXplID09IExJQlhMX1NTSE1f UkFOR0VfVU5LTk9XTikgeworICAgICAgICBSRVRfSU5WQUwoInNpemUgbm90IHNwZWNpZmllZCIs IHNwZWMpOworICAgIH0KKyAgICBpZiAoc3NobS0+cHJvdCA9PSBMSUJYTF9TU0hNX1BST1RfVU5L Tk9XTikgeworICAgICAgICBzc2htLT5wcm90ID0gTElCWExfU1NITV9QUk9UX1JXOworICAgIH0K KworICAgIHJjID0gMDsKKworIG91dDoKKyAgICBpZiAoYnVmMikgeyBmcmVlKGJ1ZjIpOyB9Cisg ICAgcmVnZnJlZSgmZXF1X3JlYyk7CisgICAgcmV0dXJuIHJjOworfQorCisvKgorICogTG9jYWwg dmFyaWFibGVzOgorICogbW9kZTogQworICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIGluZGVudC10 YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4 bHV0aWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsdXRpbC5oCmluZGV4IGU4MWI2NDQuLmVlMzljYjUg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsdXRpbC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xp YnhsdXRpbC5oCkBAIC0xMTgsNiArMTE4LDEyIEBAIGludCB4bHVfcmRtX3BhcnNlKFhMVV9Db25m aWcgKmNmZywgbGlieGxfcmRtX3Jlc2VydmUgKnJkbSwgY29uc3QgY2hhciAqc3RyKTsKIGludCB4 bHVfdmlmX3BhcnNlX3JhdGUoWExVX0NvbmZpZyAqY2ZnLCBjb25zdCBjaGFyICpyYXRlLAogICAg ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpuaWMpOwogCisvKgorICogc3Rh dGljIHNoYXJlZCBtZW1vcnkgc3BlY2lmaWNhdGlvbiBwYXJzaW5nCisgKi8KK2ludCB4bHVfc3No bV9wYXJzZShYTFVfQ29uZmlnICpjZmcsIGNvbnN0IGNoYXIgKnNwZWMsCisgICAgICAgICAgICAg ICAgICAgbGlieGxfc3RhdGljX3NobSAqc3NobSk7CisKICNlbmRpZiAvKiBMSUJYTFVUSUxfSCAq LwogCiAvKgpkaWZmIC0tZ2l0IGEvdG9vbHMveGwveGxfcGFyc2UuYyBiL3Rvb2xzL3hsL3hsX3Bh cnNlLmMKaW5kZXggMGJkYTI4MS4uYTIzZWRlYyAxMDA2NDQKLS0tIGEvdG9vbHMveGwveGxfcGFy c2UuYworKysgYi90b29scy94bC94bF9wYXJzZS5jCkBAIC0xMjA5LDcgKzEyMDksOCBAQCB2b2lk IHBhcnNlX2NvbmZpZ19kYXRhKGNvbnN0IGNoYXIgKmNvbmZpZ19zb3VyY2UsCiAgICAgbG9uZyBs LCB2Y3B1cyA9IDA7CiAgICAgWExVX0NvbmZpZyAqY29uZmlnOwogICAgIFhMVV9Db25maWdMaXN0 ICpjcHVzLCAqdmJkcywgKm5pY3MsICpwY2lzLCAqY3ZmYnMsICpjcHVpZHMsICp2dHBtcywKLSAg ICAgICAgICAgICAgICAgICAqdXNiY3RybHMsICp1c2JkZXZzLCAqcDlkZXZzLCAqdmRpc3Bscywg KnB2Y2FsbHNpZnNfZGV2czsKKyAgICAgICAgICAgICAgICAgICAqdXNiY3RybHMsICp1c2JkZXZz LCAqcDlkZXZzLCAqdmRpc3BscywgKnB2Y2FsbHNpZnNfZGV2cywKKyAgICAgICAgICAgICAgICAg ICAqc3NobXM7CiAgICAgWExVX0NvbmZpZ0xpc3QgKmNoYW5uZWxzLCAqaW9wb3J0cywgKmlycXMs ICppb21lbSwgKnZpcmlkaWFuLCAqZHRkZXZzLAogICAgICAgICAgICAgICAgICAgICptY2FfY2Fw czsKICAgICBpbnQgbnVtX2lvcG9ydHMsIG51bV9pcnFzLCBudW1faW9tZW0sIG51bV9jcHVzLCBu dW1fdmlyaWRpYW4sIG51bV9tY2FfY2FwczsKQEAgLTE5MTksNiArMTkyMCwyOCBAQCB2b2lkIHBh cnNlX2NvbmZpZ19kYXRhKGNvbnN0IGNoYXIgKmNvbmZpZ19zb3VyY2UsCiAgICAgICAgIH0KICAg ICB9CiAKKyAgICBpZiAoIXhsdV9jZmdfZ2V0X2xpc3QgKGNvbmZpZywgInN0YXRpY19zaG0iLCAm c3NobXMsIDAsIDApKSB7CisgICAgICAgIGRfY29uZmlnLT5udW1fc3NobXMgPSAwOworICAgICAg ICBkX2NvbmZpZy0+c3NobXMgPSBOVUxMOworICAgICAgICB3aGlsZSAoKGJ1ZiA9IHhsdV9jZmdf Z2V0X2xpc3RpdGVtIChzc2htcywgZF9jb25maWctPm51bV9zc2htcykpICE9IE5VTEwpIHsKKyAg ICAgICAgICAgIGxpYnhsX3N0YXRpY19zaG0gKnNzaG07CisgICAgICAgICAgICBjaGFyICpidWYy ID0gc3RyZHVwKGJ1Zik7CisgICAgICAgICAgICBpbnQgcmV0OworCisgICAgICAgICAgICBzc2ht ID0gQVJSQVlfRVhURU5EX0lOSVRfTk9ERVZJRChkX2NvbmZpZy0+c3NobXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkX2NvbmZpZy0+bnVtX3NzaG1zLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfc3RhdGlj X3NobV9pbml0KTsKKyAgICAgICAgICAgIHJldCA9IHhsdV9zc2htX3BhcnNlKGNvbmZpZywgYnVm Miwgc3NobSk7CisgICAgICAgICAgICBpZiAocmV0KSB7CisgICAgICAgICAgICAgICAgZnByaW50 ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICAgICAieGw6IEludmFsaWQgYXJndW1lbnQg Zm9yIHN0YXRpY19zaG06ICVzIiwgYnVmMik7CisgICAgICAgICAgICAgICAgZXhpdChFWElUX0ZB SUxVUkUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmcmVlKGJ1ZjIpOworICAgICAg ICB9CisgICAgfQorCiAgICAgaWYgKCF4bHVfY2ZnX2dldF9saXN0KGNvbmZpZywgInA5IiwgJnA5 ZGV2cywgMCwgMCkpIHsKICAgICAgICAgbGlieGxfZGV2aWNlX3A5ICpwOTsKICAgICAgICAgY2hh ciAqc2VjdXJpdHlfbW9kZWwgPSBOVUxMOwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8veGVuLWRldmVs