Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp3206392imm; Fri, 25 May 2018 01:24:38 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpuKJZ2cZXqZEzK1q9Qb6PYxc1tIuTBKZLCBAYc2MnySHLHlvc1wzEoJQjdZF72rox4poFI X-Received: by 2002:a63:9812:: with SMTP id q18-v6mr1212182pgd.170.1527236678339; Fri, 25 May 2018 01:24:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527236678; cv=none; d=google.com; s=arc-20160816; b=Hp+zI0XAmS0xaqWQb78eq0x32QhgHsI9DSx5n8xhmLqC84pku2VB0jsfz/mcEJfmdm jq/iFmOwyfAuVwIJShCj/7gCZw3wZUtwtNgu83qp6Gi7FOFaAJ/ttyz7OpMoSeTz580K iCa6EkT8zl/nZHdndun2xH3OWeNu0Q54Tl91muIHFMtHhw4hqpU2is4onjWrlOi/Nwtl BNTR2Y+ToIZFlK7g0BoPf84V8AX0P2/cza0B6P8X3Q40ZB0c+/ckr07Akx3dioQIUPzD Rrm6Wdq4SlSl8nlpzwd3k6adYMgP15haozVqJYaAL2QPfWJ8xoaLFl1dflXyG263xXxt x8hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:reply-to:mime-version:dkim-signature :arc-authentication-results; bh=7OPeM9cvI5nJHGLa6TJ8jNZXY0Vym5Gje05Dl2UbWSc=; b=x4CiQC5hYhbYWUfrgS44D034wDtQj0ITu5hJwjCNGAWPXR/s7s4NrOcZwqdoHpD2/H VTmsAsbPydq1ZXru7sNcFM+2wg0NKsmuCEW7x+3sGzxDszzUPz1ATvyuchU1ws8I4RfX 4MlnijhfvkZ3K/ZsilNoTuPNyjQJxhUq8vR2tUDkIeJqO3UHPQGll3AkMCbyBwmOSf8d uh/nMIKgMKpvEqkJ6MxtqyGnPIJdkuRBP2t4ETPLqb46Evvr4y14rn3BrLmSQ3FHr7J3 8WL5kSOszj3RIJaBmecNIOTbdXxGqMmQS44roAuxoIEVFYpm0YN1aC+0K8gCzIjBXm3U 6WSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rFM7Dzna; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d8-v6si17503423pgn.428.2018.05.25.01.24.23; Fri, 25 May 2018 01:24:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rFM7Dzna; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936045AbeEYIYQ (ORCPT + 99 others); Fri, 25 May 2018 04:24:16 -0400 Received: from mail-wr0-f194.google.com ([209.85.128.194]:35903 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935921AbeEYIYP (ORCPT ); Fri, 25 May 2018 04:24:15 -0400 Received: by mail-wr0-f194.google.com with SMTP id k5-v6so7689666wrn.3 for ; Fri, 25 May 2018 01:24:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:reply-to:in-reply-to:references:from:date:message-id :subject:to:cc; bh=7OPeM9cvI5nJHGLa6TJ8jNZXY0Vym5Gje05Dl2UbWSc=; b=rFM7DznahbJZkM1oJ5Tlgdbgji84ldAbFZpl7VqeVqT3Am9UMMOAND36TiR7uStWuc 3+zPIKjnyMurB8EHmZQb9jY8eukKmfGSaQ2t0nCOT5OsFRMyz7eCAPaeQLMbQo1IBvcq qV2tvE0lWX2P77lszI5m3EMHzImSIeNS+phz+liyhXIiSGtXMZNDL9OHx2lB1BlccHPU 6bZrMNQQIESetXrp6tEohiR9Vvy3Q0wa2kkSsyySYBU5ZGK5eckrjYsJHSZADfkREcTU FhGuXodlxF1K4fFBDGjXBOaJLKNxWfb6I3o3hDn8fdxmiQzuzdKB9tKVBDpATdIPINFX 7NTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :from:date:message-id:subject:to:cc; bh=7OPeM9cvI5nJHGLa6TJ8jNZXY0Vym5Gje05Dl2UbWSc=; b=QMZxLQ+5qGVFZ49XWGlE00ph7kcRHm7SILgIdhPbqGNrfUs6oB21OoXkcH6KTPCMFf PcjEMOioWT9ZgmFu7uuhJETP26Mns+YcEL+C2jsqyYg+G3DkPh8c/BYpXxA8lcxX9ot0 jKIVDTUm3LZmh/2OTQ8SanEKCKzSmC2igg3x1vKVec9h86fmEeiRqVMhOBMsspMFeECT 9BTjk0/v8FnIXHSnN/ujKyz6uytcdiGZIqGQFMQC2HWQbHVSb9hohjFfM6m6hJt9pPfY dgpQ+EKB+jLVMaUd3ajm+3nsOQmV0lUUhs2n9RBqOyhrsIgEK1LYIdwqFverlYgrNM5p yCxg== X-Gm-Message-State: ALKqPwdnviAXswZkjKHoLl3vVNNCaeE8L6KINYQgov4WxPPjae8I1nh1 HkwKTS1hhp/dVlIGYkeRfd0sh4JSLAFMYiyhpxw= X-Received: by 2002:a19:9c4b:: with SMTP id f72-v6mr840626lfe.119.1527236654053; Fri, 25 May 2018 01:24:14 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a19:ce89:0:0:0:0:0 with HTTP; Fri, 25 May 2018 01:24:13 -0700 (PDT) Reply-To: sedat.dilek@gmail.com In-Reply-To: References: From: Sedat Dilek Date: Fri, 25 May 2018 10:24:13 +0200 Message-ID: Subject: Re: [clang] stack protector and f1f029c7bf To: Nick Desaulniers Cc: hpa@zytor.com, Alistair Strachan , Manoj Gupta , Matthias Kaehlcke , Greg Hackmann , tstellar@redhat.com, LKML , Kees Cook Content-Type: multipart/mixed; boundary="00000000000040ea6c056d037e34" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --00000000000040ea6c056d037e34 Content-Type: text/plain; charset="UTF-8" On Thu, May 24, 2018 at 10:26 PM, Nick Desaulniers wrote: [...] >> Issue 2: ... The other option is to turn stack canary explicitly off for > all such functions. > > We're looking to add the compiler attribute no_stack_protector. It's added > in mainline clang, the llvm bug cited earlier is about getting it > backported into clang-6.0.1 release. Sedat has tested/verified a set of > patches to the kernel that use this new feature in: > https://marc.info/?l=linux-kernel&m=152697630812366&w=2 > Hi Nick, sorry, if I was not clear/precise on this. You referenced the patches from my 1st tryouts which were wrong in the sense of "did-not-compile". I have attached the correct two patches. The commit-bodies needs some more "massage" to quote Thomas Gleixner, useful web-links and credits should be added also. I appreciate your help here. From my understanding... The more correct approach in fixing the issue is to add Clang's "no_stack_protector" function attribute support and mark native_save_fl() accordingly. The 2nd solution partly revert "x86: allow "=rm" in native_save_fl()" is not favoured as the impact on other parts of the Linux-kernel are not clear. The 1st solution requires a Clang >= 7-svn331925. Is that correct? What does that mean in fixing the issue? [ Linux-kernel side ] I guess GCC and marking native_save_fl() should be OK? After some rework, do you plan to push patches from the 1st solution to Linus uptream? [ LLVM/Clang side ] What about backporting "no_stack_protector" to LLVM/Clang v6.0.1? Thanks to all involved people. Sunshiny greetings from North-West Germany, - Sedat - --00000000000040ea6c056d037e34 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-compiler-clang.h-Add-no_stack_protector-function-att.patch" Content-Disposition: attachment; filename="0001-compiler-clang.h-Add-no_stack_protector-function-att.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jhlp9jzm0 RnJvbSBjNjhjZWY5MDQ4ZTk2YWYxMjExYTU3YmQ3YTVmNmNhNmVmZGZjN2IyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTZWRhdCBEaWxlayA8c2VkYXQuZGlsZWtAY3JlZGF0aXYuZGU+ CkRhdGU6IEZyaSwgMjUgTWF5IDIwMTggMDk6NDA6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEv Ml0gY29tcGlsZXItY2xhbmcuaDogQWRkIG5vX3N0YWNrX3Byb3RlY3RvciBmdW5jdGlvbgogYXR0 cmlidXRlIHN1cHBvcnQKCkZyb20gWzFdOgoKIkNsYW5nIHN1cHBvcnRzIHRoZSBfX2F0dHJpYnV0 ZV9fKChub19zdGFja19wcm90ZWN0b3IpKSBhdHRyaWJ1dGUgd2hpY2gKZGlzYWJsZXMgdGhlIHN0 YWNrIHByb3RlY3RvciBvbiB0aGUgc3BlY2lmaWVkIGZ1bmN0aW9uLgpUaGlzIGF0dHJpYnV0ZSBp cyB1c2VmdWwgZm9yIHNlbGVjdGl2ZWx5IGRpc2FibGluZyB0aGUgc3RhY2sgcHJvdGVjdG9yCm9u IHNvbWUgZnVuY3Rpb25zIHdoZW4gYnVpbGRpbmcgd2l0aCAtZnN0YWNrLXByb3RlY3RvciBjb21w aWxlciBvcHRpb24uIgoKVGhpcyBpcyBuZWVkZWQgdG8gbWFyayBuYXRpdmVfc2F2ZV9mbCgpIHdp dGggX19ub3N0YWNrcHJvdGVjdG9yIGF0dHJpYnV0ZSB0bwpmaXggYSBidWcgaW4gdGhlIHg4Ni9w YXJhdmlydC9zdGFja3Byb3RlY3RvciBhcmVhIHdpdGggQ2xhbmcgKHNlZSBbMl0gYW5kIFszXSku CgpOT1RFOiBDbGFuZy03ICg+PSBzdm4zMzE5MjUpIHN1cHBvcnRzIG5vX3N0YWNrX3Byb3RlY3Rv ciBmdW5jdGlvbiBhdHRyaWJ1dGUuCgpbMV0gaHR0cHM6Ly9jbGFuZy5sbHZtLm9yZy9kb2NzL0F0 dHJpYnV0ZVJlZmVyZW5jZS5odG1sI25vLXN0YWNrLXByb3RlY3Rvci1jbGFuZy1uby1zdGFjay1w cm90ZWN0b3ItY2xhbmctbm8tc3RhY2stcHJvdGVjdG9yClsyXSBodHRwczovL2J1Z3MubGx2bS5v cmcvc2hvd19idWcuY2dpP2lkPTM3NTEyClszXSBodHRwczovL2dpdGh1Yi5jb20vQ2xhbmdCdWls dExpbnV4L2xpbnV4L2lzc3Vlcy8xNgotLS0KIGluY2x1ZGUvbGludXgvY29tcGlsZXItY2xhbmcu aCB8IDYgKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9jb21waWxlci1jbGFuZy5oIGIvaW5jbHVkZS9saW51eC9jb21waWxl ci1jbGFuZy5oCmluZGV4IDA3MGY4NWQ5MmMxNS4uNWY0OWZmMGJmN2VlIDEwMDY0NAotLS0gYS9p bmNsdWRlL2xpbnV4L2NvbXBpbGVyLWNsYW5nLmgKKysrIGIvaW5jbHVkZS9saW51eC9jb21waWxl ci1jbGFuZy5oCkBAIC0yMSwzICsyMSw5IEBACiAjaWZkZWYgX19ub3JldHBvbGluZQogI3VuZGVm IF9fbm9yZXRwb2xpbmUKICNlbmRpZgorCisvKiBDbGFuZy03ICg+PSBzdm4zMzE5MjUpIHN1cHBv cnRzIG5vX3N0YWNrX3Byb3RlY3RvciBmdW5jdGlvbiBhdHRyaWJ1dGUuICovCisjaWZkZWYgX19u b3N0YWNrcHJvdGVjdG9yCisjdW5kZWYgX19ub3N0YWNrcHJvdGVjdG9yCisjZGVmaW5lIF9fbm9z dGFja3Byb3RlY3RvciBfX2F0dHJpYnV0ZV9fKChub19zdGFja19wcm90ZWN0b3IpKQorI2VuZGlm Ci0tIAoyLjE3LjAKCg== --00000000000040ea6c056d037e34 Content-Type: text/x-patch; charset="US-ASCII"; name="0002-x86-paravirt-Mark-native_save_fl-with-__nostackprote.patch" Content-Disposition: attachment; filename="0002-x86-paravirt-Mark-native_save_fl-with-__nostackprote.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jhlp9mly1 RnJvbSAyZTFkYzE1OTlhZjZlNTk5YWZkOWVkYTcwZTlkMmQ4MTljYzdkZjBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTZWRhdCBEaWxlayA8c2VkYXQuZGlsZWtAY3JlZGF0aXYuZGU+ CkRhdGU6IFR1ZSwgMjIgTWF5IDIwMTggMTI6MDc6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDIv Ml0geDg2L3BhcmF2aXJ0OiBNYXJrIG5hdGl2ZV9zYXZlX2ZsKCkgd2l0aAogX19ub3N0YWNrcHJv dGVjdG9yIGF0dHJpYnV0ZQoKRm9yIGRldGFpbHMgcGxlYXNlIHNlZSBbMV0gYW5kIFsyXS4KClRo aXMgcmVxdWlyZXMgQ2xhbmctNyAoPj0gc3ZuMzMxOTI1KSB3aGljaCBzdXBwb3J0cyBfX25vc3Rh Y2twcm90ZWN0b3IgYXR0cmlidXRlLgoKWzFdIGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9Mzc1MTIKWzJdIGh0dHBzOi8vZ2l0aHViLmNvbS9DbGFuZ0J1aWx0TGludXgvbGlu dXgvaXNzdWVzLzE2Ci0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20vaXJxZmxhZ3MuaCB8IDIgKy0K IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2lycWZsYWdzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9pcnFmbGFncy5oCmluZGV4IDg5ZjA4OTU1ZmZmNy4uN2U2NzY1MDk3YWRjIDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnFmbGFncy5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUv YXNtL2lycWZsYWdzLmgKQEAgLTEzLDcgKzEzLDcgQEAKICAqIEludGVycnVwdCBjb250cm9sOgog ICovCiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBuYXRpdmVfc2F2ZV9mbCh2b2lkKQor c3RhdGljIGlubGluZSBfX25vc3RhY2twcm90ZWN0b3IgdW5zaWduZWQgbG9uZyBuYXRpdmVfc2F2 ZV9mbCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLS0gCjIuMTcuMAoK --00000000000040ea6c056d037e34--