From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kees Cook Subject: [PATCH 2/3] gcc-plugins: Introduce stackinit plugin Date: Wed, 23 Jan 2019 03:03:48 -0800 Message-ID: <20190123110349.35882-3-keescook__29735.2312643611$1548241531$gmane$org@chromium.org> References: <20190123110349.35882-1-keescook@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gmGKN-0005Tq-Ro for xen-devel@lists.xenproject.org; Wed, 23 Jan 2019 11:04:15 +0000 Received: by mail-pf1-x444.google.com with SMTP id b7so1009452pfi.8 for ; Wed, 23 Jan 2019 03:04:14 -0800 (PST) In-Reply-To: <20190123110349.35882-1-keescook@chromium.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: linux-kernel@vger.kernel.org Cc: dev@openvswitch.org, Kees Cook , Ard Biesheuvel , netdev@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-usb@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-security-module@vger.kernel.org, kernel-hardening@lists.openwall.com, intel-wired-lan@lists.osuosl.org, linux-fsdevel@vger.kernel.org, xen-devel@lists.xenproject.org, Laura Abbott , linux-kbuild@vger.kernel.org, Alexander Popov List-Id: xen-devel@lists.xenproject.org VGhpcyBhdHRlbXB0cyB0byBkdXBsaWNhdGUgdGhlIHByb3Bvc2VkIGdjYyBvcHRpb24gLWZpbml0 LWxvY2FsLXZhcnNbMV0KaW4gYW4gZWZmb3J0IHRvIGltcGxlbWVudCB0aGUgImFsd2F5cyBpbml0 aWFsaXplIGxvY2FsIHZhcmlhYmxlcyIga2VybmVsCmRldmVsb3BtZW50IGdvYWxbMl0uCgpFbmFi bGluZyBDT05GSUdfR0NDX1BMVUdJTl9TVEFDS0lOSVQgc2hvdWxkIHN0b3AgYWxsICJ1bmluaXRp YWxpemVkCnN0YWNrIHZhcmlhYmxlIiBmbGF3cyBhcyBsb25nIGFzIHRoZXkgZG9uJ3QgZGVwZW5k IG9uIGJlaW5nIHplcm8uIDopCgpbMV0gaHR0cHM6Ly9nY2MuZ251Lm9yZy9tbC9nY2MtcGF0Y2hl cy8yMDE0LTA2L21zZzAwNjE1Lmh0bWwKWzJdIGh0dHBzOi8vbGttbC5rZXJuZWwub3JnL3IvQ0Er NTVhRnlrWkwrY1NCSmpCQnRzN2ViRUZmeUdQZE16VG1MU3hLblRfMjk9ajk0MmRBQG1haWwuZ21h aWwuY29tCgpTaWduZWQtb2ZmLWJ5OiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4K LS0tCiBzY3JpcHRzL01ha2VmaWxlLmdjYy1wbHVnaW5zICAgICAgICAgICB8ICA2ICsrCiBzY3Jp cHRzL2djYy1wbHVnaW5zL0tjb25maWcgICAgICAgICAgICB8ICA5ICsrKwogc2NyaXB0cy9nY2Mt cGx1Z2lucy9nY2MtY29tbW9uLmggICAgICAgfCAxMSArKystCiBzY3JpcHRzL2djYy1wbHVnaW5z L3N0YWNraW5pdF9wbHVnaW4uYyB8IDc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZp bGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNjcmlwdHMvZ2NjLXBsdWdpbnMvc3RhY2tpbml0X3BsdWdpbi5jCgpkaWZmIC0t Z2l0IGEvc2NyaXB0cy9NYWtlZmlsZS5nY2MtcGx1Z2lucyBiL3NjcmlwdHMvTWFrZWZpbGUuZ2Nj LXBsdWdpbnMKaW5kZXggMzUwNDJkOTZjZjVkLi4yNDgzMTIxZDc4MWMgMTAwNjQ0Ci0tLSBhL3Nj cmlwdHMvTWFrZWZpbGUuZ2NjLXBsdWdpbnMKKysrIGIvc2NyaXB0cy9NYWtlZmlsZS5nY2MtcGx1 Z2lucwpAQCAtMTIsNiArMTIsMTIgQEAgZXhwb3J0IERJU0FCTEVfTEFURU5UX0VOVFJPUFlfUExV R0lOCiAKIGdjYy1wbHVnaW4tJChDT05GSUdfR0NDX1BMVUdJTl9TQU5DT1YpCQkrPSBzYW5jb3Zf cGx1Z2luLnNvCiAKK2djYy1wbHVnaW4tJChDT05GSUdfR0NDX1BMVUdJTl9TVEFDS0lOSVQpCSs9 IHN0YWNraW5pdF9wbHVnaW4uc28KK2lmZGVmIENPTkZJR19HQ0NfUExVR0lOX1NUQUNLSU5JVAor ICAgIERJU0FCTEVfU1RBQ0tJTklUX1BMVUdJTiArPSAtZnBsdWdpbi1hcmctc3RhY2tpbml0X3Bs dWdpbi1kaXNhYmxlCitlbmRpZgorZXhwb3J0IERJU0FCTEVfU1RBQ0tJTklUX1BMVUdJTgorCiBn Y2MtcGx1Z2luLSQoQ09ORklHX0dDQ19QTFVHSU5fU1RSVUNUTEVBSykJKz0gc3RydWN0bGVha19w bHVnaW4uc28KIGdjYy1wbHVnaW4tY2ZsYWdzLSQoQ09ORklHX0dDQ19QTFVHSU5fU1RSVUNUTEVB S19WRVJCT1NFKQlcCiAJCSs9IC1mcGx1Z2luLWFyZy1zdHJ1Y3RsZWFrX3BsdWdpbi12ZXJib3Nl CmRpZmYgLS1naXQgYS9zY3JpcHRzL2djYy1wbHVnaW5zL0tjb25maWcgYi9zY3JpcHRzL2djYy1w bHVnaW5zL0tjb25maWcKaW5kZXggZDQ1ZjdmMzZiODU5Li5iMTE3ZmU4M2YxZDMgMTAwNjQ0Ci0t LSBhL3NjcmlwdHMvZ2NjLXBsdWdpbnMvS2NvbmZpZworKysgYi9zY3JpcHRzL2djYy1wbHVnaW5z L0tjb25maWcKQEAgLTY2LDYgKzY2LDE1IEBAIGNvbmZpZyBHQ0NfUExVR0lOX0xBVEVOVF9FTlRS T1BZCiAJICAgKiBodHRwczovL2dyc2VjdXJpdHkubmV0LwogCSAgICogaHR0cHM6Ly9wYXguZ3Jz ZWN1cml0eS5uZXQvCiAKK2NvbmZpZyBHQ0NfUExVR0lOX1NUQUNLSU5JVAorCWJvb2wgIkluaXRp YWxpemUgYWxsIHN0YWNrIHZhcmlhYmxlcyB0byB6ZXJvIGJ5IGRlZmF1bHQiCisJZGVwZW5kcyBv biBHQ0NfUExVR0lOUworCWRlcGVuZHMgb24gIUdDQ19QTFVHSU5fU1RSVUNUTEVBSworCWhlbHAK KwkgIFRoaXMgcGx1Z2luIHplcm8taW5pdGlhbGl6ZXMgYWxsIHN0YWNrIHZhcmlhYmxlcy4gVGhp cyBpcyBtb3JlCisJICBjb21wcmVoZW5zaXZlIHRoYW4gR0NDX1BMVUdJTl9TVFJVQ1RMRUFLLCBh bmQgYXR0ZW1wdHMgdG8KKwkgIGR1cGxpY2F0ZSB0aGUgcHJvcG9zZWQgLWZpbml0LWxvY2FsLXZh cnMgZ2NjIGJ1aWxkIGZsYWcuCisKIGNvbmZpZyBHQ0NfUExVR0lOX1NUUlVDVExFQUsKIAlib29s ICJGb3JjZSBpbml0aWFsaXphdGlvbiBvZiB2YXJpYWJsZXMgY29udGFpbmluZyB1c2Vyc3BhY2Ug YWRkcmVzc2VzIgogCSMgQ3VycmVudGx5IFNUUlVDVExFQUsgaW5zZXJ0cyBpbml0aWFsaXphdGlv biBvdXQgb2YgbGl2ZSBzY29wZSBvZgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9nY2MtcGx1Z2lucy9n Y2MtY29tbW9uLmggYi9zY3JpcHRzL2djYy1wbHVnaW5zL2djYy1jb21tb24uaAppbmRleCA1NTJk NWVmZDdjYjcuLmY2OTBiNGRlZWFiZCAxMDA2NDQKLS0tIGEvc2NyaXB0cy9nY2MtcGx1Z2lucy9n Y2MtY29tbW9uLmgKKysrIGIvc2NyaXB0cy9nY2MtcGx1Z2lucy9nY2MtY29tbW9uLmgKQEAgLTc2 LDYgKzc2LDE0IEBACiAjaW5jbHVkZSAiYy1jb21tb24uaCIKICNlbmRpZgogCisjaWYgQlVJTERJ TkdfR0NDX1ZFUlNJT04gPiA0MDA1CisjaW5jbHVkZSAiYy10cmVlLmgiCisjZWxzZQorLyogc2hv dWxkIGNvbWUgZnJvbSBjLXRyZWUuaCBpZiBvbmx5IGl0IHdlcmUgaW5zdGFsbGVkIGZvciBnY2Mg NC41Li4uICovCisjZGVmaW5lIENfVFlQRV9GSUVMRFNfUkVBRE9OTFkoVFlQRSkgVFJFRV9MQU5H X0ZMQUdfMShUWVBFKQorZXh0ZXJuIGJvb2wgZ2xvYmFsX2JpbmRpbmdzX3AgKHZvaWQpOworI2Vu ZGlmCisKICNpZiBCVUlMRElOR19HQ0NfVkVSU0lPTiA8PSA0MDA4CiAjaW5jbHVkZSAidHJlZS1m bG93LmgiCiAjZWxzZQpAQCAtMTU4LDkgKzE2Niw2IEBAIHZvaWQgZHVtcF9naW1wbGVfc3RtdChw cmV0dHlfcHJpbnRlciAqLCBnaW1wbGUsIGludCwgaW50KTsKICNkZWZpbmUgVFlQRV9OQU1FX1BP SU5URVIobm9kZSkgSURFTlRJRklFUl9QT0lOVEVSKFRZUEVfTkFNRShub2RlKSkKICNkZWZpbmUg VFlQRV9OQU1FX0xFTkdUSChub2RlKSBJREVOVElGSUVSX0xFTkdUSChUWVBFX05BTUUobm9kZSkp CiAKLS8qIHNob3VsZCBjb21lIGZyb20gYy10cmVlLmggaWYgb25seSBpdCB3ZXJlIGluc3RhbGxl ZCBmb3IgZ2NjIDQuNS4uLiAqLwotI2RlZmluZSBDX1RZUEVfRklFTERTX1JFQURPTkxZKFRZUEUp IFRSRUVfTEFOR19GTEFHXzEoVFlQRSkKLQogc3RhdGljIGlubGluZSB0cmVlIGJ1aWxkX2NvbnN0 X2NoYXJfc3RyaW5nKGludCBsZW4sIGNvbnN0IGNoYXIgKnN0cikKIHsKIAl0cmVlIGNzdHIsIGVs ZW0sIGluZGV4LCB0eXBlOwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9nY2MtcGx1Z2lucy9zdGFja2lu aXRfcGx1Z2luLmMgYi9zY3JpcHRzL2djYy1wbHVnaW5zL3N0YWNraW5pdF9wbHVnaW4uYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQxMDU1Y2Q3MDk4ZQotLS0gL2Rl di9udWxsCisrKyBiL3NjcmlwdHMvZ2NjLXBsdWdpbnMvc3RhY2tpbml0X3BsdWdpbi5jCkBAIC0w LDAgKzEsNzkgQEAKKy8qIFNQRFgtTGljZW5zZTogR1BMdjIgKi8KKy8qCisgKiBUaGlzIHdpbGwg emVyby1pbml0aWFsaXplIGxvY2FsIHN0YWNrIHZhcmlhYmxlcy4gKFRob3VnaCBzdHJ1Y3R1cmUK KyAqIHBhZGRpbmcgbWF5IHJlbWFpbiB1bmluaXRpYWxpemVkIGluIGNlcnRhaW4gY2FzZXMuKQor ICoKKyAqIEltcGxlbWVudHMgRmxvcmlhbiBXZWltZXIncyAiLWZpbml0LWxvY2FsLXZhcnMiIGdj YyBwYXRjaCBhcyBhIHBsdWdpbjoKKyAqIGh0dHBzOi8vZ2NjLmdudS5vcmcvbWwvZ2NjLXBhdGNo ZXMvMjAxNC0wNi9tc2cwMDYxNS5odG1sCisgKgorICogUGx1Z2luIHNrZWxldG9uIGNvZGUgdGhh bmtzIHRvIFBhWCBUZWFtLgorICoKKyAqIE9wdGlvbnM6CisgKiAtZnBsdWdpbi1hcmctc3RhY2tp bml0X3BsdWdpbi1kaXNhYmxlCisgKi8KKworI2luY2x1ZGUgImdjYy1jb21tb24uaCIKKworX192 aXNpYmxlIGludCBwbHVnaW5faXNfR1BMX2NvbXBhdGlibGU7CisKK3N0YXRpYyBzdHJ1Y3QgcGx1 Z2luX2luZm8gc3RhY2tpbml0X3BsdWdpbl9pbmZvID0geworCS52ZXJzaW9uCT0gIjIwMTkwMTIy IiwKKwkuaGVscAkJPSAiZGlzYWJsZVx0ZG8gbm90IGFjdGl2YXRlIHBsdWdpblxuIiwKK307CisK K3N0YXRpYyB2b2lkIGZpbmlzaF9kZWNsKHZvaWQgKmV2ZW50X2RhdGEsIHZvaWQgKmRhdGEpCit7 CisJdHJlZSBkZWNsID0gKHRyZWUpZXZlbnRfZGF0YTsKKwl0cmVlIHR5cGU7CisKKwlpZiAoVFJF RV9DT0RFIChkZWNsKSAhPSBWQVJfREVDTCkKKwkJcmV0dXJuOworCisJaWYgKERFQ0xfRVhURVJO QUwgKGRlY2wpKQorCQlyZXR1cm47CisKKwlpZiAoREVDTF9JTklUSUFMIChkZWNsKSAhPSBOVUxM X1RSRUUpCisJCXJldHVybjsKKworCWlmIChnbG9iYWxfYmluZGluZ3NfcCAoKSkKKwkJcmV0dXJu OworCisJdHlwZSA9IFRSRUVfVFlQRSAoZGVjbCk7CisJaWYgKEFHR1JFR0FURV9UWVBFX1AgKHR5 cGUpKQorCQlERUNMX0lOSVRJQUwgKGRlY2wpID0gYnVpbGRfY29uc3RydWN0b3IgKHR5cGUsIE5V TEwpOworCWVsc2UKKwkJREVDTF9JTklUSUFMIChkZWNsKSA9IGZvbGRfY29udmVydCAodHlwZSwg aW50ZWdlcl96ZXJvX25vZGUpOworfQorCitfX3Zpc2libGUgaW50IHBsdWdpbl9pbml0KHN0cnVj dCBwbHVnaW5fbmFtZV9hcmdzICpwbHVnaW5faW5mbywgc3RydWN0IHBsdWdpbl9nY2NfdmVyc2lv biAqdmVyc2lvbikKK3sKKwlpbnQgaTsKKwljb25zdCBjaGFyICogY29uc3QgcGx1Z2luX25hbWUg PSBwbHVnaW5faW5mby0+YmFzZV9uYW1lOworCWNvbnN0IGludCBhcmdjID0gcGx1Z2luX2luZm8t PmFyZ2M7CisJY29uc3Qgc3RydWN0IHBsdWdpbl9hcmd1bWVudCAqIGNvbnN0IGFyZ3YgPSBwbHVn aW5faW5mby0+YXJndjsKKwlib29sIGVuYWJsZSA9IHRydWU7CisKKwlpZiAoIXBsdWdpbl9kZWZh dWx0X3ZlcnNpb25fY2hlY2sodmVyc2lvbiwgJmdjY192ZXJzaW9uKSkgeworCQllcnJvcihHXygi aW5jb21wYXRpYmxlIGdjYy9wbHVnaW4gdmVyc2lvbnMiKSk7CisJCXJldHVybiAxOworCX0KKwor CWlmIChzdHJuY21wKGxhbmdfaG9va3MubmFtZSwgIkdOVSBDIiwgNSkgJiYgIXN0cm5jbXAobGFu Z19ob29rcy5uYW1lLCAiR05VIEMrIiwgNikpIHsKKwkJaW5mb3JtKFVOS05PV05fTE9DQVRJT04s IEdfKCIlcyBzdXBwb3J0cyBDIG9ubHksIG5vdCAlcyIpLCBwbHVnaW5fbmFtZSwgbGFuZ19ob29r cy5uYW1lKTsKKwkJZW5hYmxlID0gZmFsc2U7CisJfQorCisJZm9yIChpID0gMDsgaSA8IGFyZ2M7 ICsraSkgeworCQlpZiAoIXN0cmNtcChhcmd2W2ldLmtleSwgImRpc2FibGUiKSkgeworCQkJZW5h YmxlID0gZmFsc2U7CisJCQljb250aW51ZTsKKwkJfQorCQllcnJvcihHXygidW5rbm93biBvcHRp b24gJy1mcGx1Z2luLWFyZy0lcy0lcyciKSwgcGx1Z2luX25hbWUsIGFyZ3ZbaV0ua2V5KTsKKwl9 CisKKwlyZWdpc3Rlcl9jYWxsYmFjayhwbHVnaW5fbmFtZSwgUExVR0lOX0lORk8sIE5VTEwsICZz dGFja2luaXRfcGx1Z2luX2luZm8pOworCWlmIChlbmFibGUpCisJCXJlZ2lzdGVyX2NhbGxiYWNr KHBsdWdpbl9uYW1lLCBQTFVHSU5fRklOSVNIX0RFQ0wsIGZpbmlzaF9kZWNsLCBOVUxMKTsKKwor CXJldHVybiAwOworfQotLSAKMi4xNy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3hlbi1kZXZlbA==