Re: [PATCH 4/4 v5] fortify: Add Clang support
From: Kees Cook <hidden>
Date: 2022-02-03 03:16:00
Also in:
linux-hardening, lkml, llvm
On Wed, Feb 02, 2022 at 01:22:09PM -0800, Nick Desaulniers wrote:
On Tue, Feb 1, 2022 at 4:30 PM Kees Cook [off-list ref] wrote:quoted
--- a/security/Kconfig +++ b/security/Kconfig@@ -179,7 +179,7 @@ config FORTIFY_SOURCE depends on ARCH_HAS_FORTIFY_SOURCE # https://bugs.llvm.org/show_bug.cgi?id=50322 # https://bugs.llvm.org/show_bug.cgi?id=41459 - depends on !CC_IS_CLANG + depends on !CC_IS_CLANG || CLANG_VERSION >= 130000Are these comments still relevant, and is the clang version still correct?
Oh, good call. I thought the version was still correct (more below), but yes, the comments need adjusting.
In https://lore.kernel.org/llvm/CANiq72n1d7ouKNi+pbsy7chsg0DfCXxez27qqtS9XE1n3m5=8Q@mail.gmail.com/ (local) Miguel notes that diagnose_as only exists in clang-14+. If this series relies on diagnose_as, then should this version check be for clang-14+ rather than clang-13+?
It doesn't rely on it; this is just taking advantage of an improvement.
https://bugs.llvm.org/show_bug.cgi?id=50322 is still open, but doesn't signify why there's a version check. It makes sense if there's no version check, but I'm not sure it's still relevant to this Kconfig option after your series.
With __overloadable, this probably ended up going away.
https://bugs.llvm.org/show_bug.cgi?id=41459 was fixed in clang-13, but it was also backported to the clang 12.0.1 release. Is it still relevant if we're gated on diagnose_as from clang-14?
Ah-ha! I missed that this got backported. Looks like 12.0.1 and later have this fixed. That's excellent!
Perhaps a single comment, about the diagnose_as attribute or a link to https://reviews.llvm.org/rGbc5f2d12cadce765620efc56a1ca815221db47af or whatever, and updating the version check to be against clang-14 would be more precise?
Yup, I will rework this after double-checking 12.0.1 builds. Thanks! -- Kees Cook