From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 97745 invoked by alias); 1 Aug 2017 08:56:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 97714 invoked by uid 89); 1 Aug 2017 08:56:12 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=landing, H*MI:corp, pads, H*c:HHH X-HELO: mga07.intel.com Received: from mga07.intel.com (HELO mga07.intel.com) (134.134.136.100) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 01 Aug 2017 08:56:11 +0000 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga105.jf.intel.com with ESMTP; 01 Aug 2017 01:56:09 -0700 X-ExtLoop1: 1 Received: from irsmsx105.ger.corp.intel.com ([163.33.3.28]) by orsmga001.jf.intel.com with ESMTP; 01 Aug 2017 01:56:08 -0700 Received: from irsmsx102.ger.corp.intel.com ([169.254.2.211]) by irsmsx105.ger.corp.intel.com ([169.254.7.168]) with mapi id 14.03.0319.002; Tue, 1 Aug 2017 09:56:07 +0100 From: "Tsimbalist, Igor V" To: "'gcc-patches@gcc.gnu.org'" CC: "Tsimbalist, Igor V" Subject: 0001-Part-1.-Add-generic-part-for-Intel-CET-enabling Date: Tue, 01 Aug 2017 08:56:00 -0000 Message-ID: dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action Content-Type: multipart/mixed; boundary="_002_D511F25789BA7F4EBA64C8A63891A0027AA04014IRSMSX102gercor_" MIME-Version: 1.0 X-IsSubscribed: yes X-SW-Source: 2017-08/txt/msg00026.txt.bz2 --_002_D511F25789BA7F4EBA64C8A63891A0027AA04014IRSMSX102gercor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 1698 Part#1. Add generic part for Intel CET enabling. The spec is available at https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-e= nforcement-technology-preview.pdf High-level design. ------------------ A proposal is to introduce a target independent flag -finstrument-control-flow with a semantic to instrument a code to control validness or integrity of control-flow transfers using jump and call instructions. The main goal is to detect and block a possible malware execution through transfer the execution to unknown target address. Implementation could be either software or target based. Any target platforms can provide their implementation for instrumentation under this option. When the -finstrument-control-flow flag is set each implementation has to check if a support exists for a target platform and report an error if no support is found. The compiler should instrument any control-flow transfer points in a program (ex. call/jmp/ret) as well as any landing pads, which are targets of for control-flow transfers. A new 'notrack' attribute is introduced to provide hand tuning support. The attribute directs the compiler to skip a call to a function and a function's landing pad from instrumentation (tracking). The attribute can be used for function and pointer to function types, otherwise it will be ignored. The attribute is saved in a type and propagated to a GIMPLE call statement and later to a call instruction. Currently all platforms except i386 will report the error and do no instrumentation. i386 will provide the implementation based on a specification published by Intel for a new technology called Control-flow Enforcement Technology (CET). --_002_D511F25789BA7F4EBA64C8A63891A0027AA04014IRSMSX102gercor_ Content-Type: application/octet-stream; name="0001-Part-1.-Add-generic-part-for-Intel-CET-enabling.patch" Content-Description: 0001-Part-1.-Add-generic-part-for-Intel-CET-enabling.patch Content-Disposition: attachment; filename="0001-Part-1.-Add-generic-part-for-Intel-CET-enabling.patch"; size=11535; creation-date="Tue, 01 Aug 2017 08:15:24 GMT"; modification-date="Tue, 01 Aug 2017 08:15:24 GMT" Content-Transfer-Encoding: base64 Content-length: 15637 RnJvbSA0MDNmYzgyMzlmYjFmNjkwY2MzNzgyODdiNGRlZjU3ZGNjOWQyNWJm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIFRzaW1iYWxp c3QgPGlnb3Iudi50c2ltYmFsaXN0QGludGVsLmNvbT4KRGF0ZTogTW9uLCAz IEp1bCAyMDE3IDE3OjExOjU4ICswMzAwClN1YmplY3Q6IFtQQVRDSCAxLzld IFBhcnQjMS4gQWRkIGdlbmVyaWMgcGFydCBmb3IgSW50ZWwgQ0VUIGVuYWJs aW5nLgoKVGhlIHNwZWMgaXMgYXZhaWxhYmxlIGF0CgpodHRwczovL3NvZnR3 YXJlLmludGVsLmNvbS9zaXRlcy9kZWZhdWx0L2ZpbGVzL21hbmFnZWQvNGQv MmEvY29udHJvbC1mbG93LWVuZm9yY2VtZW50LXRlY2hub2xvZ3ktcHJldmll dy5wZGYKCkhpZ2gtbGV2ZWwgZGVzaWduLgotLS0tLS0tLS0tLS0tLS0tLS0K CkEgcHJvcG9zYWwgaXMgdG8gaW50cm9kdWNlIGEgdGFyZ2V0IGluZGVwZW5k ZW50IGZsYWcKLWZpbnN0cnVtZW50LWNvbnRyb2wtZmxvdyB3aXRoIGEgc2Vt YW50aWMgdG8gaW5zdHJ1bWVudCBhIGNvZGUgdG8KY29udHJvbCB2YWxpZG5l c3Mgb3IgaW50ZWdyaXR5IG9mIGNvbnRyb2wtZmxvdyB0cmFuc2ZlcnMgdXNp bmcganVtcAphbmQgY2FsbCBpbnN0cnVjdGlvbnMuIFRoZSBtYWluIGdvYWwg aXMgdG8gZGV0ZWN0IGFuZCBibG9jayBhIHBvc3NpYmxlCm1hbHdhcmUgZXhl Y3V0aW9uIHRocm91Z2ggdHJhbnNmZXIgdGhlIGV4ZWN1dGlvbiB0byB1bmtu b3duIHRhcmdldAphZGRyZXNzLiBJbXBsZW1lbnRhdGlvbiBjb3VsZCBiZSBl aXRoZXIgc29mdHdhcmUgb3IgdGFyZ2V0IGJhc2VkLiBBbnkKdGFyZ2V0IHBs YXRmb3JtcyBjYW4gcHJvdmlkZSB0aGVpciBpbXBsZW1lbnRhdGlvbiBmb3Ig aW5zdHJ1bWVudGF0aW9uCnVuZGVyIHRoaXMgb3B0aW9uLgoKV2hlbiB0aGUg LWZpbnN0cnVtZW50LWNvbnRyb2wtZmxvdyBmbGFnIGlzIHNldCBlYWNoIGlt cGxlbWVudGF0aW9uIGhhcwp0byBjaGVjayBpZiBhIHN1cHBvcnQgZXhpc3Rz IGZvciBhIHRhcmdldCBwbGF0Zm9ybSBhbmQgcmVwb3J0IGFuIGVycm9yCmlm IG5vIHN1cHBvcnQgaXMgZm91bmQuCgpUaGUgY29tcGlsZXIgc2hvdWxkIGlu c3RydW1lbnQgYW55IGNvbnRyb2wtZmxvdyB0cmFuc2ZlciBwb2ludHMgaW4g YQpwcm9ncmFtIChleC4gY2FsbC9qbXAvcmV0KSBhcyB3ZWxsIGFzIGFueSBs YW5kaW5nIHBhZHMsIHdoaWNoIGFyZQp0YXJnZXRzIG9mIGZvciBjb250cm9s LWZsb3cgdHJhbnNmZXJzLgoKQSBuZXcgJ25vdHJhY2snIGF0dHJpYnV0ZSBp cyBpbnRyb2R1Y2VkIHRvIHByb3ZpZGUgaGFuZCB0dW5pbmcgc3VwcG9ydC4K VGhlIGF0dHJpYnV0ZSBkaXJlY3RzIHRoZSBjb21waWxlciB0byBza2lwIGEg Y2FsbCB0byBhIGZ1bmN0aW9uIGFuZCBhCmZ1bmN0aW9uJ3MgbGFuZGluZyBw YWQgZnJvbSBpbnN0cnVtZW50YXRpb24gKHRyYWNraW5nKS4gVGhlIGF0dHJp YnV0ZQpjYW4gYmUgdXNlZCBmb3IgZnVuY3Rpb24gYW5kIHBvaW50ZXIgdG8g ZnVuY3Rpb24gdHlwZXMsIG90aGVyd2lzZSBpdAp3aWxsIGJlIGlnbm9yZWQu IFRoZSBhdHRyaWJ1dGUgaXMgc2F2ZWQgaW4gYSB0eXBlIGFuZCBwcm9wYWdh dGVkIHRvIGEKR0lNUExFIGNhbGwgc3RhdGVtZW50IGFuZCBsYXRlciB0byBh IGNhbGwgaW5zdHJ1Y3Rpb24uCgpDdXJyZW50bHkgYWxsIHBsYXRmb3JtcyBl eGNlcHQgaTM4NiB3aWxsIHJlcG9ydCB0aGUgZXJyb3IgYW5kIGRvIG5vCmlu c3RydW1lbnRhdGlvbi4gaTM4NiB3aWxsIHByb3ZpZGUgdGhlIGltcGxlbWVu dGF0aW9uIGJhc2VkIG9uIGEKc3BlY2lmaWNhdGlvbiBwdWJsaXNoZWQgYnkg SW50ZWwgZm9yIGEgbmV3IHRlY2hub2xvZ3kgY2FsbGVkCkNvbnRyb2wtZmxv dyBFbmZvcmNlbWVudCBUZWNobm9sb2d5IChDRVQpLgoKZ2NjL2MtZmFtaWx5 LwoKCSogYy1hdHRyaWJzLmMgKGhhbmRsZV9ub3RyYWNrX2F0dHJpYnV0ZSk6 IE5ldyBmdW5jdGlvbi4KCShjX2NvbW1vbl9hdHRyaWJ1dGVfdGFibGUpOiBB ZGQgJ25vdHJhY2snIGhhbmRsaW5nLgoKZ2NjLwoKCSogY2ZnZXhwYW5kLmMg KGV4cGFuZF9jYWxsX3N0bXQpOiBTZXQgUkVHX0NBTExfTk9UUkFDSy4KCSog Y29tYmluZS5jIChkaXN0cmlidXRlX25vdGVzKTogQWRkIFJFR19DQUxMX05P VFJBQ0sgaGFuZGxpbmcuCgkqIGNvbW1vbi5vcHQ6IEFkZCBmaW5zdHJ1bWVu dC1jb250cm9sLWZsb3cgZmxhZy4KCSogZW1pdC1ydGwuYyAodHJ5X3NwbGl0 KTogQWRkIFJFR19DQUxMX05PVFJBQ0sgaGFuZGxpbmcuCgkqIGdpbXBsZS5j IChnaW1wbGVfYnVpbGRfY2FsbF9mcm9tX3RyZWUpOiBBZGQgJ25vdHJhY2sn Cglwcm9wb2dhdGlvbi4KCSogZ2ltcGxlLmggKGdmX21hc2spOiBBZGQgR0Zf Q0FMTF9XSVRIX05PVFJBQ0suCgkoZ2ltcGxlX2NhbGxfd2l0aF9ub3RyYWNr X3ApOiBmdW5jdGlvbi4KCShnaW1wbGVfY2FsbF9zZXRfd2l0aF9ub3RyYWNr KTogTGlrZXdpc2UuCgkqIHJlY29nLmMgKHBlZXAyX2F0dGVtcHQpOiBBZGQg UkVHX0NBTExfTk9UUkFDSyBoYW5kbGluZy4KCSogcmVnLW5vdGVzLmRlZjog QWRkIFJFR19OT1RFIChDQUxMX05PVFJBQ0spLgoJKiB0b3BsZXYuYyAocHJv Y2Vzc19vcHRpb25zKTogQWRkIGZsYWdfaW5zdHJ1bWVudF9jb250cm9sX2Zs b3cKCWhhbmRsaW5nLgotLS0KIGdjYy9jLWZhbWlseS9jLWF0dHJpYnMuYyB8 IDIzICsrKysrKysrKysrKysrKysrKysrKysrCiBnY2MvY2ZnZXhwYW5kLmMg ICAgICAgICAgfCAxMSArKysrKysrKysrKwogZ2NjL2NvbWJpbmUuYyAgICAg ICAgICAgIHwgIDEgKwogZ2NjL2NvbW1vbi5vcHQgICAgICAgICAgIHwgIDUg KysrKysKIGdjYy9lbWl0LXJ0bC5jICAgICAgICAgICB8ICAxICsKIGdjYy9n aW1wbGUuYyAgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKysrCiBn Y2MvZ2ltcGxlLmggICAgICAgICAgICAgfCAzNCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBnY2MvcmVjb2cuYyAgICAgICAgICAgICAg fCAgMSArCiBnY2MvcmVnLW5vdGVzLmRlZiAgICAgICAgfCAgNyArKysrKysr CiBnY2MvdG9wbGV2LmMgICAgICAgICAgICAgfCAxMSArKysrKysrKysrKwog MTAgZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKykKLS0tCiBnY2Mv Yy1mYW1pbHkvYy1hdHRyaWJzLmMgfCAyMyArKysrKysrKysrKysrKysrKysr KysrKwogZ2NjL2NmZ2V4cGFuZC5jICAgICAgICAgIHwgMTEgKysrKysrKysr KysKIGdjYy9jb21iaW5lLmMgICAgICAgICAgICB8ICAxICsKIGdjYy9jb21t b24ub3B0ICAgICAgICAgICB8ICA1ICsrKysrCiBnY2MvZW1pdC1ydGwuYyAg ICAgICAgICAgfCAgMSArCiBnY2MvZ2ltcGxlLmMgICAgICAgICAgICAgfCAx NyArKysrKysrKysrKysrKysrKwogZ2NjL2dpbXBsZS5oICAgICAgICAgICAg IHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZ2Nj L3JlY29nLmMgICAgICAgICAgICAgIHwgIDEgKwogZ2NjL3JlZy1ub3Rlcy5k ZWYgICAgICAgIHwgIDcgKysrKysrKwogZ2NjL3RvcGxldi5jICAgICAgICAg ICAgIHwgMTEgKysrKysrKysrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDExMSBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZ2NjL2MtZmFtaWx5L2MtYXR0 cmlicy5jIGIvZ2NjL2MtZmFtaWx5L2MtYXR0cmlicy5jCmluZGV4IDBkOWFi MmQuLjRkNjJmN2MgMTAwNjQ0Ci0tLSBhL2djYy9jLWZhbWlseS9jLWF0dHJp YnMuYworKysgYi9nY2MvYy1mYW1pbHkvYy1hdHRyaWJzLmMKQEAgLTY1LDYg KzY1LDcgQEAgc3RhdGljIHRyZWUgaGFuZGxlX2FzYW5fb2RyX2luZGljYXRv cl9hdHRyaWJ1dGUgKHRyZWUgKiwgdHJlZSwgdHJlZSwgaW50LAogc3RhdGlj IHRyZWUgaGFuZGxlX3N0YWNrX3Byb3RlY3RfYXR0cmlidXRlICh0cmVlICos IHRyZWUsIHRyZWUsIGludCwgYm9vbCAqKTsKIHN0YXRpYyB0cmVlIGhhbmRs ZV9ub2lubGluZV9hdHRyaWJ1dGUgKHRyZWUgKiwgdHJlZSwgdHJlZSwgaW50 LCBib29sICopOwogc3RhdGljIHRyZWUgaGFuZGxlX25vY2xvbmVfYXR0cmli dXRlICh0cmVlICosIHRyZWUsIHRyZWUsIGludCwgYm9vbCAqKTsKK3N0YXRp YyB0cmVlIGhhbmRsZV9ub3RyYWNrX2F0dHJpYnV0ZSAodHJlZSAqLCB0cmVl LCB0cmVlLCBpbnQsIGJvb2wgKik7CiBzdGF0aWMgdHJlZSBoYW5kbGVfbm9p Y2ZfYXR0cmlidXRlICh0cmVlICosIHRyZWUsIHRyZWUsIGludCwgYm9vbCAq KTsKIHN0YXRpYyB0cmVlIGhhbmRsZV9ub2lwYV9hdHRyaWJ1dGUgKHRyZWUg KiwgdHJlZSwgdHJlZSwgaW50LCBib29sICopOwogc3RhdGljIHRyZWUgaGFu ZGxlX2xlYWZfYXR0cmlidXRlICh0cmVlICosIHRyZWUsIHRyZWUsIGludCwg Ym9vbCAqKTsKQEAgLTM1OSw2ICszNjAsOCBAQCBjb25zdCBzdHJ1Y3QgYXR0 cmlidXRlX3NwZWMgY19jb21tb25fYXR0cmlidXRlX3RhYmxlW10gPQogICB7 ICJwYXRjaGFibGVfZnVuY3Rpb25fZW50cnkiLAkxLCAyLCB0cnVlLCBmYWxz ZSwgZmFsc2UsCiAJCQkgICAgICBoYW5kbGVfcGF0Y2hhYmxlX2Z1bmN0aW9u X2VudHJ5X2F0dHJpYnV0ZSwKIAkJCSAgICAgIGZhbHNlIH0sCisgIHsgIm5v dHJhY2siLAkJICAgICAgMCwgMCwgZmFsc2UsIHRydWUsIHRydWUsCisJCQkg ICAgICBoYW5kbGVfbm90cmFja19hdHRyaWJ1dGUsIGZhbHNlIH0sCiAgIHsg TlVMTCwgICAgICAgICAgICAgICAgICAgICAwLCAwLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBOVUxMLCBmYWxzZSB9CiB9OwogCkBAIC03NzUsNiArNzc4LDI2 IEBAIGhhbmRsZV9ub2Nsb25lX2F0dHJpYnV0ZSAodHJlZSAqbm9kZSwgdHJl ZSBuYW1lLAogICByZXR1cm4gTlVMTF9UUkVFOwogfQogCisvKiBIYW5kbGUg YSAibm90cmFjayIgYXR0cmlidXRlOyBhcmd1bWVudHMgYXMgaW4KKyAgIHN0 cnVjdCBhdHRyaWJ1dGVfc3BlYy5oYW5kbGVyLiAgKi8KKworc3RhdGljIHRy ZWUKK2hhbmRsZV9ub3RyYWNrX2F0dHJpYnV0ZSAodHJlZSAqbm9kZSwgdHJl ZSBuYW1lLAorCQkJICB0cmVlIEFSR19VTlVTRUQgKGFyZ3MpLAorCQkJICBp bnQgQVJHX1VOVVNFRCAoZmxhZ3MpLCBib29sICpub19hZGRfYXR0cnMpCit7 CisgIGlmIChUUkVFX0NPREUgKCpub2RlKSAhPSBGVU5DVElPTl9UWVBFCisg ICAgICAmJiBUUkVFX0NPREUgKCpub2RlKSAhPSBNRVRIT0RfVFlQRQorICAg ICAgJiYgVFJFRV9DT0RFICgqbm9kZSkgIT0gRklFTERfREVDTAorICAgICAg JiYgVFJFRV9DT0RFICgqbm9kZSkgIT0gVFlQRV9ERUNMKQorICAgIHsKKyAg ICAgIHdhcm5pbmcgKE9QVF9XYXR0cmlidXRlcywgIiVxRSBhdHRyaWJ1dGUg aWdub3JlZCIsIG5hbWUpOworICAgICAgKm5vX2FkZF9hdHRycyA9IHRydWU7 CisgICAgfQorCisgIHJldHVybiBOVUxMX1RSRUU7Cit9CisKIC8qIEhhbmRs ZSBhICJub19pY2YiIGF0dHJpYnV0ZTsgYXJndW1lbnRzIGFzIGluCiAgICBz dHJ1Y3QgYXR0cmlidXRlX3NwZWMuaGFuZGxlci4gICovCiAKZGlmZiAtLWdp dCBhL2djYy9jZmdleHBhbmQuYyBiL2djYy9jZmdleHBhbmQuYwppbmRleCBj OWQ4MTE4Li5lZDM0NGM1IDEwMDY0NAotLS0gYS9nY2MvY2ZnZXhwYW5kLmMK KysrIGIvZ2NjL2NmZ2V4cGFuZC5jCkBAIC0yNjU3LDEyICsyNjU3LDIzIEBA IGV4cGFuZF9jYWxsX3N0bXQgKGdjYWxsICpzdG10KQogCSAgfQogICAgIH0K IAorICBydHhfaW5zbiAqYmVmb3JlX2NhbGwgPSBnZXRfbGFzdF9pbnNuICgp OwogICBsaHMgPSBnaW1wbGVfY2FsbF9saHMgKHN0bXQpOwogICBpZiAobGhz KQogICAgIGV4cGFuZF9hc3NpZ25tZW50IChsaHMsIGV4cCwgZmFsc2UpOwog ICBlbHNlCiAgICAgZXhwYW5kX2V4cHIgKGV4cCwgY29uc3QwX3J0eCwgVk9J RG1vZGUsIEVYUEFORF9OT1JNQUwpOwogCisgIC8qIEZpbmQgYSBnZW5lcmF0 ZWQgQ0FMTCBpbnNuIHRvIHByb3BhZ2F0ZSBhICdub3RyYWNrJyBhdHRyaWJ1 dGUuICAqLworICBydHhfaW5zbiAqbGFzdCA9IGdldF9sYXN0X2luc24gKCk7 CisgIHdoaWxlICghQ0FMTF9QIChsYXN0KQorCSAmJiAobGFzdCAhPSBiZWZv cmVfY2FsbCkpCisgICAgbGFzdCA9IFBSRVZfSU5TTiAobGFzdCk7CisKKyAg aWYgKGxhc3QgIT0gYmVmb3JlX2NhbGwKKyAgICAgICYmIGdpbXBsZV9jYWxs X3dpdGhfbm90cmFja19wIChzdG10KSkKKyAgICBhZGRfcmVnX25vdGUgKGxh c3QsIFJFR19DQUxMX05PVFJBQ0ssIGNvbnN0MF9ydHgpOworCiAgIG1hcmtf dHJhbnNhY3Rpb25fcmVzdGFydF9jYWxscyAoc3RtdCk7CiB9CiAKZGlmZiAt LWdpdCBhL2djYy9jb21iaW5lLmMgYi9nY2MvY29tYmluZS5jCmluZGV4IDhk YzYyYjUuLmE5ZTVlNGYgMTAwNjQ0Ci0tLSBhL2djYy9jb21iaW5lLmMKKysr IGIvZ2NjL2NvbWJpbmUuYwpAQCAtMTQwMjksNiArMTQwMjksNyBAQCBkaXN0 cmlidXRlX25vdGVzIChydHggbm90ZXMsIHJ0eF9pbnNuICpmcm9tX2luc24s IHJ0eF9pbnNuICppMywgcnR4X2luc24gKmkyLAogCWNhc2UgUkVHX1NFVEpN UDoKIAljYXNlIFJFR19UTToKIAljYXNlIFJFR19DQUxMX0RFQ0w6CisJY2Fz ZSBSRUdfQ0FMTF9OT1RSQUNLOgogCSAgLyogVGhlc2Ugbm90ZXMgbXVzdCBy ZW1haW4gd2l0aCB0aGUgY2FsbC4gIEl0IHNob3VsZCBub3QgYmUKIAkgICAg IHBvc3NpYmxlIGZvciBib3RoIEkyIGFuZCBJMyB0byBiZSBhIGNhbGwuICAq LwogCSAgaWYgKENBTExfUCAoaTMpKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbW1v bi5vcHQgYi9nY2MvY29tbW9uLm9wdAppbmRleCA3OGNmYTU2Li4yMTA2OWJi IDEwMDY0NAotLS0gYS9nY2MvY29tbW9uLm9wdAorKysgYi9nY2MvY29tbW9u Lm9wdApAQCAtMTYwMiw2ICsxNjAyLDExIEBAIGZpbmxpbmUtYXRvbWljcwog Q29tbW9uIFJlcG9ydCBWYXIoZmxhZ19pbmxpbmVfYXRvbWljcykgSW5pdCgx KSBPcHRpbWl6YXRpb24KIElubGluZSBfX2F0b21pYyBvcGVyYXRpb25zIHdo ZW4gYSBsb2NrIGZyZWUgaW5zdHJ1Y3Rpb24gc2VxdWVuY2UgaXMgYXZhaWxh YmxlLgogCitmaW5zdHJ1bWVudC1jb250cm9sLWZsb3cKK0NvbW1vbiBSZXBv cnQgVmFyKGZsYWdfaW5zdHJ1bWVudF9jb250cm9sX2Zsb3cpIEluaXQoLTEp CitJbnN0cnVtZW50IGZ1bmN0aW9ucyB3aXRoIGNoZWNrcyB0byB2ZXJpZnkg anVtcC9jYWxsIGNvbnRyb2wtZmxvdyB0cmFuc2ZlcgoraW5zdHJ1Y3Rpb25z IGhhdmUgdmFsaWQgdGFyZ2V0cy4KKwogZmluc3RydW1lbnQtZnVuY3Rpb25z CiBDb21tb24gUmVwb3J0IFZhcihmbGFnX2luc3RydW1lbnRfZnVuY3Rpb25f ZW50cnlfZXhpdCkKIEluc3RydW1lbnQgZnVuY3Rpb24gZW50cnkgYW5kIGV4 aXQgd2l0aCBwcm9maWxpbmcgY2FsbHMuCmRpZmYgLS1naXQgYS9nY2MvZW1p dC1ydGwuYyBiL2djYy9lbWl0LXJ0bC5jCmluZGV4IDJiYzVkNTYuLmI4NzQ0 ZmIgMTAwNjQ0Ci0tLSBhL2djYy9lbWl0LXJ0bC5jCisrKyBiL2djYy9lbWl0 LXJ0bC5jCkBAIC0zNzgwLDYgKzM3ODAsNyBAQCB0cnlfc3BsaXQgKHJ0eCBw YXQsIHJ0eF9pbnNuICp0cmlhbCwgaW50IGxhc3QpCiAJY2FzZSBSRUdfTk9S RVRVUk46CiAJY2FzZSBSRUdfU0VUSk1QOgogCWNhc2UgUkVHX1RNOgorCWNh c2UgUkVHX0NBTExfTk9UUkFDSzoKIAkgIGZvciAoaW5zbiA9IGluc25fbGFz dDsgaW5zbiAhPSBOVUxMX1JUWDsgaW5zbiA9IFBSRVZfSU5TTiAoaW5zbikp CiAJICAgIHsKIAkgICAgICBpZiAoQ0FMTF9QIChpbnNuKSkKZGlmZiAtLWdp dCBhL2djYy9naW1wbGUuYyBiL2djYy9naW1wbGUuYwppbmRleCA0NzlmOTBj Li4yZTRhYjJkIDEwMDY0NAotLS0gYS9nY2MvZ2ltcGxlLmMKKysrIGIvZ2Nj L2dpbXBsZS5jCkBAIC0zNzgsNiArMzc4LDIzIEBAIGdpbXBsZV9idWlsZF9j YWxsX2Zyb21fdHJlZSAodHJlZSB0KQogICBnaW1wbGVfc2V0X25vX3dhcm5p bmcgKGNhbGwsIFRSRUVfTk9fV0FSTklORyAodCkpOwogICBnaW1wbGVfY2Fs bF9zZXRfd2l0aF9ib3VuZHMgKGNhbGwsIENBTExfV0lUSF9CT1VORFNfUCAo dCkpOwogCisgIGlmIChmbmRlY2wgPT0gTlVMTF9UUkVFKQorICAgIHsKKyAg ICAgIC8qIEZpbmQgdGhlIHR5cGUgb2YgYW4gaW5kaXJlY3QgY2FsbC4gICov CisgICAgICB0cmVlIGFkZHIgPSBDQUxMX0VYUFJfRk4gKHQpOworICAgICAg aWYgKFRSRUVfQ09ERSAoYWRkcikgIT0gRlVOQ1RJT05fREVDTCkKKwl7CisJ ICB0cmVlIGZudHlwZSA9IFRSRUVfVFlQRSAoYWRkcik7CisJICBnY2NfYXNz ZXJ0IChQT0lOVEVSX1RZUEVfUCAoZm50eXBlKSk7CisJICBmbnR5cGUgPSBU UkVFX1RZUEUgKGZudHlwZSk7CisKKwkgIC8qIENoZWNrIGlmIGl0cyB0eXBl IGhhcyB0aGUgbm8tdHJhY2sgYXR0cmlidXRlIGFuZCBwcm9wYWdhdGUKKwkg ICAgIGl0IHRvIHRoZSBDQUxMIGluc24uICAqLworCSAgaWYgKGxvb2t1cF9h dHRyaWJ1dGUgKCJub3RyYWNrIiwgVFlQRV9BVFRSSUJVVEVTIChmbnR5cGUp KSkKKwkgICAgZ2ltcGxlX2NhbGxfc2V0X3dpdGhfbm90cmFjayAoY2FsbCwg VFJVRSk7CisJfQorICAgIH0KKwogICByZXR1cm4gY2FsbDsKIH0KIApkaWZm IC0tZ2l0IGEvZ2NjL2dpbXBsZS5oIGIvZ2NjL2dpbXBsZS5oCmluZGV4IDJk ODFlZWQuLmFmZDM4ZjAgMTAwNjQ0Ci0tLSBhL2djYy9naW1wbGUuaAorKysg Yi9nY2MvZ2ltcGxlLmgKQEAgLTE0OCw2ICsxNDgsNyBAQCBlbnVtIGdmX21h c2sgewogICAgIEdGX0NBTExfV0lUSF9CT1VORFMgCT0gMSA8PCA4LAogICAg IEdGX0NBTExfTVVTVF9UQUlMX0NBTEwJPSAxIDw8IDksCiAgICAgR0ZfQ0FM TF9CWV9ERVNDUklQVE9SCT0gMSA8PCAxMCwKKyAgICBHRl9DQUxMX1dJVEhf Tk9UUkFDSyAJPSAxIDw8IDExLAogICAgIEdGX09NUF9QQVJBTExFTF9DT01C SU5FRAk9IDEgPDwgMCwKICAgICBHRl9PTVBfUEFSQUxMRUxfR1JJRF9QSE9O WSA9IDEgPDwgMSwKICAgICBHRl9PTVBfVEFTS19UQVNLTE9PUAk9IDEgPDwg MCwKQEAgLTI4OTgsNiArMjg5OSwzOSBAQCBnaW1wbGVfY2FsbF9zZXRfd2l0 aF9ib3VuZHMgKGdpbXBsZSAqZ3MsIGJvb2wgd2l0aF9ib3VuZHMpCiB9CiAK IAorLyogUmV0dXJuIHRydWUgaWYgY2FsbCBHUyBpcyBtYXJrZWQgYXMgbm8t dHJhY2suICAqLworCitzdGF0aWMgaW5saW5lIGJvb2wKK2dpbXBsZV9jYWxs X3dpdGhfbm90cmFja19wIChjb25zdCBnY2FsbCAqZ3MpCit7CisgIHJldHVy biAoZ3MtPnN1YmNvZGUgJiBHRl9DQUxMX1dJVEhfTk9UUkFDSykgIT0gMDsK K30KKworc3RhdGljIGlubGluZSBib29sCitnaW1wbGVfY2FsbF93aXRoX25v dHJhY2tfcCAoY29uc3QgZ2ltcGxlICpncykKK3sKKyAgY29uc3QgZ2NhbGwg KmdjID0gR0lNUExFX0NIRUNLMjxjb25zdCBnY2FsbCAqPiAoZ3MpOworICBy ZXR1cm4gZ2ltcGxlX2NhbGxfd2l0aF9ub3RyYWNrX3AgKGdjKTsKK30KKwor LyogTWFyayBzdGF0ZW1lbnQgR1MgYXMgbm8tdHJhY2sgY2FsbC4gICovCisK K3N0YXRpYyBpbmxpbmUgdm9pZAorZ2ltcGxlX2NhbGxfc2V0X3dpdGhfbm90 cmFjayAoZ2NhbGwgKmdzLCBib29sIHdpdGhfbm90cmFjaykKK3sKKyAgaWYg KHdpdGhfbm90cmFjaykKKyAgICBncy0+c3ViY29kZSB8PSBHRl9DQUxMX1dJ VEhfTk9UUkFDSzsKKyAgZWxzZQorICAgIGdzLT5zdWJjb2RlICY9IH5HRl9D QUxMX1dJVEhfTk9UUkFDSzsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitn aW1wbGVfY2FsbF9zZXRfd2l0aF9ub3RyYWNrIChnaW1wbGUgKmdzLCBib29s IHdpdGhfbm90cmFjaykKK3sKKyAgZ2NhbGwgKmdjID0gR0lNUExFX0NIRUNL MjxnY2FsbCAqPiAoZ3MpOworICBnaW1wbGVfY2FsbF9zZXRfd2l0aF9ub3Ry YWNrIChnYywgd2l0aF9ub3RyYWNrKTsKK30KKwogLyogUmV0dXJuIHRoZSB0 YXJnZXQgb2YgaW50ZXJuYWwgY2FsbCBHUy4gICovCiAKIHN0YXRpYyBpbmxp bmUgZW51bSBpbnRlcm5hbF9mbgpkaWZmIC0tZ2l0IGEvZ2NjL3JlY29nLmMg Yi9nY2MvcmVjb2cuYwppbmRleCBmZDRlNDYwLi5mMmFmOTc3IDEwMDY0NAot LS0gYS9nY2MvcmVjb2cuYworKysgYi9nY2MvcmVjb2cuYwpAQCAtMzM4Nyw2 ICszMzg3LDcgQEAgcGVlcDJfYXR0ZW1wdCAoYmFzaWNfYmxvY2sgYmIsIHJ0 eF9pbnNuICppbnNuLCBpbnQgbWF0Y2hfbGVuLCBydHhfaW5zbiAqYXR0ZW1w dCkKIAkgIGNhc2UgUkVHX05PUkVUVVJOOgogCSAgY2FzZSBSRUdfU0VUSk1Q OgogCSAgY2FzZSBSRUdfVE06CisJICBjYXNlIFJFR19DQUxMX05PVFJBQ0s6 CiAJICAgIGFkZF9yZWdfbm90ZSAobmV3X2luc24sIFJFR19OT1RFX0tJTkQg KG5vdGUpLAogCQkJICBYRVhQIChub3RlLCAwKSk7CiAJICAgIGJyZWFrOwpk aWZmIC0tZ2l0IGEvZ2NjL3JlZy1ub3Rlcy5kZWYgYi9nY2MvcmVnLW5vdGVz LmRlZgppbmRleCA5NDNlZmY0Li5mMDJiY2M5IDEwMDY0NAotLS0gYS9nY2Mv cmVnLW5vdGVzLmRlZgorKysgYi9nY2MvcmVnLW5vdGVzLmRlZgpAQCAtMjI4 LDMgKzIyOCwxMCBAQCBSRUdfTk9URSAoUkVUVVJORUQpCiAgICBUaGUgZGVj bCBtaWdodCBub3QgYmUgYXZhaWxhYmxlIGluIHRoZSBjYWxsIGR1ZSB0byBz cGxpdHRpbmcgb2YgdGhlIGNhbGwKICAgIGluc24uICBUaGlzIG5vdGUgaXMg YSBTWU1CT0xfUkVGLiAgKi8KIFJFR19OT1RFIChDQUxMX0RFQ0wpCisKKy8q IEluZGljYXRlIHRoYXQgYSBjYWxsIGlzIGEgTk9UUkFDSyBjYWxsLiAgVGhl IHRhcmdldCBhZGRyZXNzIG9mIHRoZSBjYWxsCisgICBpcyBhc3N1bWVkIGFz IGEgdmFsaWQgYWRkcmVzcyBhbmQgbm8gY2hlY2sgdG8gdmFsaWRhdGUgdGhl IHRhcmdldAorICAgYWRkcmVzcyBpcyBuZWVkZWQuICBUaGUgY2FsbCBpcyBt YXJrZWQgd2hlbiBhIGNhbGxlZCBmdW5jdGlvbiBoYXMgYQorICAgJ25vdHJh Y2snIGF0dHJpYnV0ZS4gIFRoaXMgbm90ZSBpcyB1c2VkIGJ5IHRoZSBjb21w aWxlciB3aGVuIHRoZSBvcHRpb24KKyAgIC1maW5zdHJ1bWVudC1jb250cm9s LWZsb3cgaXMgc3BlY2lmaWVkLiAgKi8KK1JFR19OT1RFIChDQUxMX05PVFJB Q0spCmRpZmYgLS1naXQgYS9nY2MvdG9wbGV2LmMgYi9nY2MvdG9wbGV2LmMK aW5kZXggYjI4ZjE4NC4uYzIwYTZlYSAxMDA2NDQKLS0tIGEvZ2NjL3RvcGxl di5jCisrKyBiL2djYy90b3BsZXYuYwpAQCAtMTI4Myw2ICsxMjgzLDE3IEBA IHByb2Nlc3Nfb3B0aW9ucyAodm9pZCkKIAkgICAiLWZsb29wLXBhcmFsbGVs aXplLWFsbCkiKTsKICNlbmRpZgogCisgIGlmIChmbGFnX2luc3RydW1lbnRf Y29udHJvbF9mbG93ID09IC0xKQorICAgIGZsYWdfaW5zdHJ1bWVudF9jb250 cm9sX2Zsb3cgPSAwOworICBlbHNlIGlmIChmbGFnX2luc3RydW1lbnRfY29u dHJvbF9mbG93ID4gMAorCSAgICYmIGZsYWdfaW5zdHJ1bWVudF9jb250cm9s X2Zsb3cgIT0gMikKKyAgICB7CisgICAgICBlcnJvcl9hdCAoVU5LTk9XTl9M T0NBVElPTiwKKwkJIiU8LWZpbnN0cnVtZW50LWNvbnRyb2wtZmxvdyU+IGlz IG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgIgorCQkidGFyZ2V0Iik7CisgICAg ICBmbGFnX2luc3RydW1lbnRfY29udHJvbF9mbG93ID0gMDsKKyAgICB9CisK ICAgaWYgKGZsYWdfY2hlY2tfcG9pbnRlcl9ib3VuZHMpCiAgICAgewogICAg ICAgaWYgKHRhcmdldG0uY2hrcF9ib3VuZF9tb2RlICgpID09IFZPSURtb2Rl KQotLSAKMS44LjMuMQoK --_002_D511F25789BA7F4EBA64C8A63891A0027AA04014IRSMSX102gercor_--