From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felix Schmoll Subject: [PATCH XEN] Fuzzing the hypervisor Date: Thu, 17 Aug 2017 12:25:18 +0200 Message-ID: <20170817102518.1789-1-eggi.innovations@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1diHzP-0004Xk-Cu for xen-devel@lists.xenproject.org; Thu, 17 Aug 2017 10:25:23 +0000 Received: by mail-wr0-f195.google.com with SMTP id p8so1585008wrf.2 for ; Thu, 17 Aug 2017 03:25:21 -0700 (PDT) In-Reply-To: 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, Felix Schmoll List-Id: xen-devel@lists.xenproject.org QmFzZWQgb24gY29tbWl0IDZjOWFiZjBlODAyMjgwN2JiN2Q2Nzc1NzBkMDc3NTY1OTk1MGZmMWEK LS0tCiB4ZW4vS2NvbmZpZy5kZWJ1ZyAgICAgICAgICAgICB8ICA3ICsrKy0KIHhlbi9SdWxlcy5t ayAgICAgICAgICAgICAgICAgIHwgIDQgKysKIHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAgICAg IHwgIDEgKwogeGVuL2FyY2gveDg2L01ha2VmaWxlICAgICAgICAgfCAgMiArCiB4ZW4vYXJjaC94 ODYvaHZtL2h5cGVyY2FsbC5jICB8ICAxICsKIHhlbi9hcmNoL3g4Ni9oeXBlcmNhbGwuYyAgICAg IHwgIDEgKwogeGVuL2FyY2gveDg2L3B2L01ha2VmaWxlICAgICAgfCAgMiArCiB4ZW4vYXJjaC94 ODYvcHYvaHlwZXJjYWxsLmMgICB8ICAxICsKIHhlbi9jb21tb24vTWFrZWZpbGUgICAgICAgICAg IHwgMTMgKysrKysrCiB4ZW4vY29tbW9uL2RvbWFpbi5jICAgICAgICAgICB8ICA0ICsrCiB4ZW4v Y29tbW9uL3RyYWNlX3BjLmMgICAgICAgICB8IDk2ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIHhlbi9jb21tb24vdHJhY2VfcGNfc3R1Yi5jICAgIHwgMzkgKysr KysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvdHJhY2VfcGMuaCB8IDM4ICsrKysr KysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmggICAgICB8ICAxICsKIHhlbi9p bmNsdWRlL3hlbi9oeXBlcmNhbGwuaCAgIHwgIDcgKysrKwogeGVuL2luY2x1ZGUveGVuL3NjaGVk LmggICAgICAgfCAgNiArKysKIHhlbi9pbmNsdWRlL3hlbi90cmFjZV9wYy5oICAgIHwgMzEgKysr KysrKysrKysrKysKIDE3IGZpbGVzIGNoYW5nZWQsIDI1MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2NvbW1vbi90cmFjZV9wYy5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgeGVuL2NvbW1vbi90cmFjZV9wY19zdHViLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB4ZW4vaW5jbHVkZS9wdWJsaWMvdHJhY2VfcGMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9p bmNsdWRlL3hlbi90cmFjZV9wYy5oCgpkaWZmIC0tZ2l0IGEveGVuL0tjb25maWcuZGVidWcgYi94 ZW4vS2NvbmZpZy5kZWJ1ZwppbmRleCA2ODlmMjk3NGMwLi5kODdkY2Q3OGY0IDEwMDY0NAotLS0g YS94ZW4vS2NvbmZpZy5kZWJ1ZworKysgYi94ZW4vS2NvbmZpZy5kZWJ1ZwpAQCAtOTgsNyArOTgs NiBAQCBjb25maWcgUEVSRl9BUlJBWVMKIAktLS1oZWxwLS0tCiAJICBFbmFibGVzIHNvZnR3YXJl IHBlcmZvcm1hbmNlIGNvdW50ZXIgYXJyYXkgaGlzdG9ncmFtcy4KIAotCiBjb25maWcgVkVSQk9T RV9ERUJVRwogCWJvb2wgIlZlcmJvc2UgZGVidWcgbWVzc2FnZXMiCiAJZGVmYXVsdCBERUJVRwpA QCAtMTE0LDYgKzExMywxMiBAQCBjb25maWcgREVWSUNFX1RSRUVfREVCVUcKIAkgIGxvZ2dlZCBp biB0aGUgWGVuIHJpbmcgYnVmZmVyLgogCSAgSWYgdW5zdXJlLCBzYXkgTiBoZXJlLgogCitjb25m aWcgVFJBQ0VfUEMKKyAgICBib29sICJFbmFibGUgcGMtdHJhY2luZyIKKyAgICBkZWZhdWx0IGZh bHNlCisgICAgLS0taGVscC0tLQorCSAgQWRkcyB0cmFjaW5nIHN1cHBvcnQgdG8gdGhlIGh5cGVy dmlzb3IgKG5lZWRlZCBmb3IgdGhlIHRyYWNlX3BjIGh5cGVyY2FsbCkuCisKIGVuZGlmICMgREVC VUcgfHwgRVhQRVJUCiAKIGVuZG1lbnUKZGlmZiAtLWdpdCBhL3hlbi9SdWxlcy5tayBiL3hlbi9S dWxlcy5tawppbmRleCA3N2JjZDQ0OTIyLi5kZGUxNGUzMjI4IDEwMDY0NAotLS0gYS94ZW4vUnVs ZXMubWsKKysrIGIveGVuL1J1bGVzLm1rCkBAIC0xNzAsNiArMTcwLDEwIEBAIGNsZWFuOjogJChh ZGRwcmVmaXggX2NsZWFuXywgJChzdWJkaXItYWxsKSkKIF9jbGVhbl8lLzogRk9SQ0UKIAkkKE1B S0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsgLUMgJCogY2xlYW4KIAoraWZlcSAoJChDT05GSUdf VFJBQ0VfUEMpLHkpCiskKG9ianMtbmVlZC10cmFjaW5nKTogQ0ZMQUdTICs9IC1mc2FuaXRpemUt Y292ZXJhZ2U9dHJhY2UtcGMKK2VuZGlmCisKICUubzogJS5jIE1ha2VmaWxlCiAJJChDQykgJChD RkxBR1MpIC1jICQ8IC1vICRACiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90cmFwcy5jIGIv eGVuL2FyY2gvYXJtL3RyYXBzLmMKaW5kZXggYzA3OTk5YjUxOC4uMjQ3YTY4Yzk2NCAxMDA2NDQK LS0tIGEveGVuL2FyY2gvYXJtL3RyYXBzLmMKKysrIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMKQEAg LTE0MTksNiArMTQxOSw3IEBAIHN0YXRpYyBhcm1faHlwZXJjYWxsX3QgYXJtX2h5cGVyY2FsbF90 YWJsZVtdID0gewogICAgIEhZUEVSQ0FMTChwbGF0Zm9ybV9vcCwgMSksCiAgICAgSFlQRVJDQUxM X0FSTSh2Y3B1X29wLCAzKSwKICAgICBIWVBFUkNBTEwodm1fYXNzaXN0LCAyKSwKKyAgICBIWVBF UkNBTEwodHJhY2VfcGMsIDQpLAogfTsKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9NYWtlZmlsZSBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQppbmRleCA5M2VhZDZl NWRkLi5iMjgzYzNlMjJjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUKKysrIGIv eGVuL2FyY2gveDg2L01ha2VmaWxlCkBAIC03NCw2ICs3NCw4IEBAIGVmaS15IDo9ICQoc2hlbGwg aWYgWyAhIC1yICQoQkFTRURJUikvaW5jbHVkZS94ZW4vY29tcGlsZS5oIC1vIFwKICAgICAgICAg ICAgICAgICAgICAgICAtTyAkKEJBU0VESVIpL2luY2x1ZGUveGVuL2NvbXBpbGUuaCBdOyB0aGVu IFwKICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICckKFRBUkdFVCkuZWZpJzsgZmkpCiAK K29ianMtbmVlZC10cmFjaW5nIDo9IGNwdWlkLm8gaHlwZXJjYWxsLm8KKwogaWZuZXEgKCQoYnVp bGRfaWRfbGlua2VyKSwpCiBub3Rlc19waGRycyA9IC0tbm90ZXMKIGVsc2UKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2Fs bC5jCmluZGV4IGU3MjM4Y2UyOTMuLmI1OWQ3ZDQ4MWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9odm0vaHlwZXJjYWxsLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9oeXBlcmNhbGwuYwpAQCAt MTMyLDYgKzEzMiw3IEBAIHN0YXRpYyBjb25zdCBoeXBlcmNhbGxfdGFibGVfdCBodm1faHlwZXJj YWxsX3RhYmxlW10gPSB7CiAgICAgQ09NUEFUX0NBTEwobW11ZXh0X29wKSwKICAgICBIWVBFUkNB TEwoeGVucG11X29wKSwKICAgICBDT01QQVRfQ0FMTChkbV9vcCksCisgICAgSFlQRVJDQUxMKHRy YWNlX3BjKSwKICAgICBIWVBFUkNBTEwoYXJjaF8xKQogfTsKIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L2h5cGVyY2FsbC5jIGIveGVuL2FyY2gveDg2L2h5cGVyY2FsbC5jCmluZGV4IGUzMDE4 MTgxN2EuLjY3MmZmZTdlZjUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9oeXBlcmNhbGwuYwor KysgYi94ZW4vYXJjaC94ODYvaHlwZXJjYWxsLmMKQEAgLTY4LDYgKzY4LDcgQEAgY29uc3QgaHlw ZXJjYWxsX2FyZ3NfdCBoeXBlcmNhbGxfYXJnc190YWJsZVtOUl9oeXBlcmNhbGxzXSA9CiAgICAg QVJHUyh4ZW5wbXVfb3AsIDIpLAogICAgIEFSR1MoZG1fb3AsIDMpLAogICAgIEFSR1MobWNhLCAx KSwKKyAgICBBUkdTKHRyYWNlX3BjLCA0KSwKICAgICBBUkdTKGFyY2hfMSwgMSksCiB9OwogCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvcHYvTWFr ZWZpbGUKaW5kZXggNGUxNTQ4NDQ3MS4uOGMzZWNjZGZkNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L3B2L01ha2VmaWxlCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9NYWtlZmlsZQpAQCAtMTEsMyAr MTEsNSBAQCBvYmoteSArPSB0cmFwcy5vCiAKIG9iai1iaW4teSArPSBkb20wX2J1aWxkLmluaXQu bwogb2JqLWJpbi15ICs9IGdwcl9zd2l0Y2gubworCitvYmpzLW5lZWQtdHJhY2luZyArPSBoeXBl cmNhbGwubwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2h5cGVyY2FsbC5jIGIveGVuL2Fy Y2gveDg2L3B2L2h5cGVyY2FsbC5jCmluZGV4IGY3OWY3ZWVmNjIuLjEzZWIyZTg2YTIgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9oeXBlcmNhbGwuYworKysgYi94ZW4vYXJjaC94ODYvcHYv aHlwZXJjYWxsLmMKQEAgLTgwLDYgKzgwLDcgQEAgc3RhdGljIGNvbnN0IGh5cGVyY2FsbF90YWJs ZV90IHB2X2h5cGVyY2FsbF90YWJsZVtdID0gewogICAgIEhZUEVSQ0FMTCh4ZW5wbXVfb3ApLAog ICAgIENPTVBBVF9DQUxMKGRtX29wKSwKICAgICBIWVBFUkNBTEwobWNhKSwKKyAgICBIWVBFUkNB TEwodHJhY2VfcGMpLAogICAgIEhZUEVSQ0FMTChhcmNoXzEpLAogfTsKIApkaWZmIC0tZ2l0IGEv eGVuL2NvbW1vbi9NYWtlZmlsZSBiL3hlbi9jb21tb24vTWFrZWZpbGUKaW5kZXggMjZjNWE2NDMz Ny4uNGUzOWRjNjZlMCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9NYWtlZmlsZQorKysgYi94ZW4v Y29tbW9uL01ha2VmaWxlCkBAIC01NSw2ICs1NSw4IEBAIG9iai15ICs9IHRhc2tsZXQubwogb2Jq LXkgKz0gdGltZS5vCiBvYmoteSArPSB0aW1lci5vCiBvYmoteSArPSB0cmFjZS5vCitvYmoteSAr PSB0cmFjZV9wYy5vCitvYmotJChDT05GSUdfVFJBQ0VfUEMpICs9IHRyYWNlX3BjX3N0dWIubwog b2JqLXkgKz0gdmVyc2lvbi5vCiBvYmoteSArPSB2aXJ0dWFsX3JlZ2lvbi5vCiBvYmoteSArPSB2 bV9ldmVudC5vCkBAIC04MCwzICs4MiwxNCBAQCBzdWJkaXItJChDT05GSUdfR0NPVikgKz0gZ2Nv dgogCiBzdWJkaXIteSArPSBsaWJlbGYKIHN1YmRpci0kKENPTkZJR19IQVNfREVWSUNFX1RSRUUp ICs9IGxpYmZkdAorCitvYmpzLW5lZWQtdHJhY2luZyA6PSBic2VhcmNoLm8gXAorICAgIGRlY29t cHJlc3MubyBkZXZpY2VfdHJlZS5vIGRvbWFpbi5vIGRvbWN0bC5vIGVhcmx5Y3Bpby5vIGdyYW50 X3RhYmxlLm8gXAorICAgIGd1ZXN0Y29weS5vIGd1bnppcC5vIGluZmxhdGUubyBrZXJuZWwubyBr ZXhlYy5vIGtleWhhbmRsZXIubyBraW1hZ2UubyBcCisgICAgbGliLm8gbGl2ZXBhdGNoLm8gbHpv Lm8gbWVtX2FjY2Vzcy5vIG1lbW9yeS5vIG11bHRpY2FsbC5vIG5vdGlmaWVyLm8gXAorICAgIHBh Z2VfYWxsb2MubyBwZHgubyBwZXJmYy5vIHJhZGl4X3RyZWUubyByYW5nZXNldC5vIFwKKyAgICBy YnRyZWUubyBzaHV0ZG93bi5vIHNvcnQubyBzdG9wX21hY2hpbmUubyBcCisgICAgc3ltYm9scy5v IHN5bWJvbHMtZHVtbXkubyBzeXNjdGwubyB0aW1lLm8gdG1lbS5vIFwKKyAgICB0bWVtX2NvbnRy b2wubyB0bWVtX3hlbi5vIHRyYWNlLm8gdW5sejQubyB1bmx6by5vIHVueHoubyB2ZXJzaW9uLm8g XAorICAgIHZpcnR1YWxfcmVnaW9uLm8gdm1hcC5vIHZtX2V2ZW50Lm8gd2FybmluZy5vIHhlbm9w cm9mLm8gXAorICAgIHhtYWxsb2NfdGxzZi5vCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWFp bi5jIGIveGVuL2NvbW1vbi9kb21haW4uYwppbmRleCBiMjJhYWNjNTdlLi5jOThhMGE5NGVjIDEw MDY0NAotLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKyBiL3hlbi9jb21tb24vZG9tYWluLmMK QEAgLTg3NCw2ICs4NzQsMTAgQEAgdm9pZCBkb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpk KQogICAgIHJjdV9hc3NpZ25fcG9pbnRlcigqcGQsIGQtPm5leHRfaW5faGFzaGJ1Y2tldCk7CiAg ICAgc3Bpbl91bmxvY2soJmRvbWxpc3RfdXBkYXRlX2xvY2spOwogCisjaWZkZWYgQ09ORklHX1RS QUNFX1BDCisgICAgeGZyZWUoZC0+dHJhY2luZ19idWZmZXIpOworI2VuZGlmCisKICAgICAvKiBT Y2hlZHVsZSBSQ1UgYXN5bmNocm9ub3VzIGNvbXBsZXRpb24gb2YgZG9tYWluIGRlc3Ryb3kuICov CiAgICAgY2FsbF9yY3UoJmQtPnJjdSwgY29tcGxldGVfZG9tYWluX2Rlc3Ryb3kpOwogfQpkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi90cmFjZV9wYy5jIGIveGVuL2NvbW1vbi90cmFjZV9wYy5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjcyMjU3MmM1MDAKLS0tIC9kZXYv bnVsbAorKysgYi94ZW4vY29tbW9uL3RyYWNlX3BjLmMKQEAgLTAsMCArMSw5NiBAQAorLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorICogdHJhY2VfcGMuYworICoKKyAqIEltcGxlbWVudGF0aW9uIG9m IHRoZSBwcm9ncmFtIGNvdW50ZXIgdHJhY2luZyBoeXBlcmNhbGwuCisgKgorICogQ29weXJpZ2h0 IChjKSAyMDE3IEZlbGl4IFNjaG1vbGwgPGVnZ2kuaW5ub3ZhdGlvbnNAZ21haWwuY29tPgorICoK KyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSwgdmVyc2lvbiAyLCBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpbmNsdWRlIDx4 ZW4vZ3Vlc3RfYWNjZXNzLmg+CisjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CisjaW5jbHVkZSA8eGVu L3htYWxsb2MuaD4KKyNpbmNsdWRlIDxwdWJsaWMvdHJhY2VfcGMuaD4KKworbG9uZyBkb190cmFj ZV9wYyhkb21pZF90IGRvbSwgaW50IG1vZGUsIHVuc2lnbmVkIGludCBzaXplLAorICAgICAgICAg ICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHVpbnQ2NF90KSBidWYpCit7CisjaWZkZWYg Q09ORklHX1RSQUNFX1BDCisgICAgaW50IHJldCA9IDA7CisgICAgc3RydWN0IGRvbWFpbiAqZDsK KworICAgIGlmICggZG9tID09IERPTUlEX1NFTEYgKQorICAgICAgICBkID0gY3VycmVudC0+ZG9t YWluOworICAgIGVsc2UKKyAgICAgICAgZCA9IGdldF9kb21haW5fYnlfaWQoZG9tKTsKKworICAg IGlmICggIWQgKQorICAgICAgICByZXR1cm4gLUVTUkNIOyAvKiBpbnZhbGlkIGRvbWFpbiAqLwor CisgICAgc3dpdGNoICggbW9kZSApCisgICAgeworICAgIGNhc2UgWEVOX1RSQUNFX1BDX1NUQVJU OgorICAgIHsKKyAgICAgICAgaWYgKCBkLT50cmFjaW5nX2J1ZmZlciApCisgICAgICAgIHsKKyAg ICAgICAgICAgIHJldCA9IC1FQlVTWTsgLyogZG9tYWluIGFscmVhZHkgYmVpbmcgdHJhY2VkICov CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGQtPnRyYWNpbmdfYnVm ZmVyX3BvcyA9IDA7CisgICAgICAgIGQtPnRyYWNpbmdfYnVmZmVyX3NpemUgPSBzaXplOworICAg ICAgICBkLT50cmFjaW5nX2J1ZmZlciA9IHhtYWxsb2NfYXJyYXkodWludDY0X3QsIHNpemUpOwor CisgICAgICAgIGlmICggIWQtPnRyYWNpbmdfYnVmZmVyICkKKyAgICAgICAgICAgIHJldCA9IC1F Tk9NRU07CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgWEVOX1RSQUNFX1BDX1NU T1A6CisgICAgeworICAgICAgICB1aW50NjRfdCAqdGVtcCA9IGQtPnRyYWNpbmdfYnVmZmVyOwor ICAgICAgICBkLT50cmFjaW5nX2J1ZmZlciA9IE5VTEw7CisKKyAgICAgICAgaWYgKCBjb3B5X3Rv X2d1ZXN0KGJ1ZiwgdGVtcCwgZC0+dHJhY2luZ19idWZmZXJfcG9zKSApCisgICAgICAgICAgICBy ZXQgPSAtRUZBVUxUOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSBkLT50cmFjaW5n X2J1ZmZlcl9wb3M7CisKKyAgICAgICAgeGZyZWUodGVtcCk7CisKKyAgICAgICAgYnJlYWs7Cisg ICAgfQorCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0ID0gLUVOT1NZUzsKKyAgICB9CisKKyAg ICBpZiAoIGRvbSAhPSBET01JRF9TRUxGICkKKyAgICAgICAgcHV0X2RvbWFpbihkKTsKKworICAg IHJldHVybiByZXQ7CisjZWxzZQorICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKyNlbmRpZgorfQor CisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAi QlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRh YnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdHJhY2Vf cGNfc3R1Yi5jIGIveGVuL2NvbW1vbi90cmFjZV9wY19zdHViLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uNGFiYTdkYmE5ZgotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9j b21tb24vdHJhY2VfcGNfc3R1Yi5jCkBAIC0wLDAgKzEsMzkgQEAKKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKyAqIHRyYWNlX3BjX3N0dWIuYworICoKKyAqIEVkZ2UgZnVuY3Rpb24vc3R1YiBmb3Ig dGhlIHByb2dyYW0gY291bnRlciB0cmFjaW5nIGh5cGVyY2FsbC4KKyAqCisgKiBDb3B5cmlnaHQg KGMpIDIwMTcgRmVsaXggU2NobW9sbCA8ZWdnaS5pbm5vdmF0aW9uc0BnbWFpbC5jb20+CisgKgor ICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlLCB2ZXJzaW9uIDIsIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2luY2x1ZGUgPHhl bi90cmFjZV9wYy5oPgorI2luY2x1ZGUgPHhlbi9rZXJuZWwuaD4KKwordm9pZCBfX3Nhbml0aXpl cl9jb3ZfdHJhY2VfcGModm9pZCkKK3sKKyAgICBzdHJ1Y3QgZG9tYWluICpkOworCisgICAgaWYg KCBzeXN0ZW1fc3RhdGUgPCBTWVNfU1RBVEVfYWN0aXZlICkKKyAgICAgICAgcmV0dXJuOworCisg ICAgZCA9IGN1cnJlbnQtPmRvbWFpbjsKKworICAgIGlmICggZC0+dHJhY2luZ19idWZmZXIgJiYK KyAgICAgICAgKGQtPnRyYWNpbmdfYnVmZmVyX3BvcyA8IGQtPnRyYWNpbmdfYnVmZmVyX3NpemUp ICkKKyAgICB7CisgICAgICAgIGQtPnRyYWNpbmdfYnVmZmVyW2QtPnRyYWNpbmdfYnVmZmVyX3Bv cysrXSA9CisgICAgICAgICAgICAodWludDY0X3QpIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygw KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvdHJhY2VfcGMuaCBi L3hlbi9pbmNsdWRlL3B1YmxpYy90cmFjZV9wYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjU0ZTQzMGE1NjEKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVkZS9w dWJsaWMvdHJhY2VfcGMuaApAQCAtMCwwICsxLDM4IEBACisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisgKiB0cmFjZV9wYy5oCisgKgorICogTWFjcm9zIGZvciBwcm9ncmFtIGNvdW50ZXIgdHJhY2lu ZyBoeXBlcmNhbGwuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEZlbGl4IFNjaG1vbGwgPGVn Z2kuaW5ub3ZhdGlvbnNAZ21haWwuY29tPgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCisgKiBvYnRhaW5pbmcgYSBjb3B5 IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgorICogZmlsZXMg KHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj dGlvbiwKKyAqIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us IGNvcHksIG1vZGlmeSwgbWVyZ2UsCisgKiBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLAorICogYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywKKyAqIHN1 YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCisgKiBpbmNs dWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2Fy ZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorICogSU4g Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkKKyAqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisgKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorICogU09GVFdBUkUgT1IgVEhF IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBf X1hFTl9QVUJMSUNfVFJBQ0VfUENfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19UUkFDRV9QQ19I X18KKworI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQorCisj ZGVmaW5lIFhFTl9UUkFDRV9QQ19TVEFSVCAwCisjZGVmaW5lIFhFTl9UUkFDRV9QQ19TVE9QIDEK KworI2VuZGlmIC8qIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAq LworCisjZW5kaWYgLyogX19YRU5fUFVCTElDX1RSQUNFX1BDX0hfXyAqLwpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvcHVibGljL3hlbi5oIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCmluZGV4 IDJhYzZiMWUyNGQuLjk1ZDgzYzIxY2UgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy94 ZW4uaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKQEAgLTEyMSw2ICsxMjEsNyBAQCBE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdWxvbmdfdCk7CiAjZGVmaW5lIF9fSFlQRVJWSVNP Ul94Y19yZXNlcnZlZF9vcCAgICAgICAzOSAvKiByZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICovCiAj ZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5wbXVfb3AgICAgICAgICAgICA0MAogI2RlZmluZSBfX0hZ UEVSVklTT1JfZG1fb3AgICAgICAgICAgICAgICAgNDEKKyNkZWZpbmUgX19IWVBFUlZJU09SX3Ry YWNlX3BjICAgICAgICAgICAgIDQyCiAKIC8qIEFyY2hpdGVjdHVyZS1zcGVjaWZpYyBoeXBlcmNh bGwgZGVmaW5pdGlvbnMuICovCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzAgICAgICAgICAg ICAgICA0OApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oIGIveGVuL2lu Y2x1ZGUveGVuL2h5cGVyY2FsbC5oCmluZGV4IGNjOTlhZWE1N2QuLmFhNjI2OWU3YjcgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4v aHlwZXJjYWxsLmgKQEAgLTgzLDYgKzgzLDEzIEBAIGRvX3hlbl92ZXJzaW9uKAogICAgIFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKTsKIAogZXh0ZXJuIGxvbmcKK2RvX3RyYWNlX3Bj KAorICAgIGRvbWlkX3QgZG9tX2lkLAorICAgIGludCBtb2RlLAorICAgIHVuc2lnbmVkIGludCBz aXplLAorICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odWludDY0X3QpIGJ1Zik7CisKK2V4dGVy biBsb25nCiBkb19jb25zb2xlX2lvKAogICAgIGludCBjbWQsCiAgICAgaW50IGNvdW50LApkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQu aAppbmRleCA2NjczYjI3ZDg4Li40YmQzZmUyNDE3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94 ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaApAQCAtNDgzLDYgKzQ4Mywx MiBAQCBzdHJ1Y3QgZG9tYWluCiAgICAgICAgIHVuc2lnbmVkIGludCBndWVzdF9yZXF1ZXN0X2Vu YWJsZWQgICAgICAgOiAxOwogICAgICAgICB1bnNpZ25lZCBpbnQgZ3Vlc3RfcmVxdWVzdF9zeW5j ICAgICAgICAgIDogMTsKICAgICB9IG1vbml0b3I7CisKKyNpZmRlZiBDT05GSUdfVFJBQ0VfUEMK KyAgICB1aW50NjRfdCogdHJhY2luZ19idWZmZXI7CisgICAgdW5zaWduZWQgaW50IHRyYWNpbmdf YnVmZmVyX3BvczsKKyAgICB1bnNpZ25lZCBpbnQgdHJhY2luZ19idWZmZXJfc2l6ZTsKKyNlbmRp ZgogfTsKIAogLyogUHJvdGVjdCB1cGRhdGVzL3JlYWRzIChyZXNwLikgb2YgZG9tYWluX2xpc3Qg YW5kIGRvbWFpbl9oYXNoLiAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3RyYWNlX3Bj LmggYi94ZW4vaW5jbHVkZS94ZW4vdHJhY2VfcGMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi42MzE4MTVkZTMwCi0tLSAvZGV2L251bGwKKysrIGIveGVuL2luY2x1ZGUv eGVuL3RyYWNlX3BjLmgKQEAgLTAsMCArMSwzMSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor ICogdHJhY2VfcGMuaAorICoKKyAqIERlY2xhcmF0aW9ucyBmb3IgdGhlIHByb2dyYW0gY291bnRl ciB0cmFjaW5nIGh5cGVyY2FsbAorICoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBGZWxpeCBTY2ht b2xsIDxlZ2dpLmlubm92YXRpb25zQGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMKKyAqIExpY2Vuc2UsIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExp Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaWZuZGVmIF9fVFJBQ0VfUENfSF9fCisjZGVmaW5l IF9fVFJBQ0VfUENfSF9fCisKKyNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KKyNpbmNsdWRlIDx4ZW4v dHlwZXMuaD4KKworI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+CisKK3ZvaWQgX19zYW5pdGl6ZXJf Y292X3RyYWNlX3BjKHZvaWQpOworCisjZW5kaWYgLyogX19UUkFDRV9QQ19IX18gKi8KLS0gCjIu MTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=