kconfig-hardened-check.git
18 months agoIntroduce the 'is present' check instead of expected=None constructor parameter
Alexander Popov [Thu, 17 Nov 2022 12:23:55 +0000 (15:23 +0300)]
Introduce the 'is present' check instead of expected=None constructor parameter

19 months agoAdd the 'mitigations' check
Alexander Popov [Fri, 11 Nov 2022 14:39:19 +0000 (17:39 +0300)]
Add the 'mitigations' check

The default value for the 'mitigations' option is 'auto'.

So this option should be enabled ('is not off') or not set at all.

19 months agoAdd the nosmt check
Alexander Popov [Wed, 9 Nov 2022 15:32:52 +0000 (18:32 +0300)]
Add the nosmt check

19 months agoAdd a special 'desired val' -- 'is not off'
Alexander Popov [Wed, 9 Nov 2022 15:24:52 +0000 (18:24 +0300)]
Add a special 'desired val' -- 'is not off'

This check gives FAIL if the option value is 'off' or
the option is not found. In other cases this check gives OK.

This feature is needed for checking that the CPU vulnerability mitigations
are not disabled. Let's see how it works and maybe improve it in future.

19 months agoImprove the result descriptions
Alexander Popov [Wed, 9 Nov 2022 14:46:38 +0000 (17:46 +0300)]
Improve the result descriptions

19 months agoAdd assertions to check arguments of the Class constructors
Alexander Popov [Tue, 8 Nov 2022 21:31:16 +0000 (00:31 +0300)]
Add assertions to check arguments of the Class constructors

19 months agoUpdate the README
Alexander Popov [Sun, 23 Oct 2022 17:08:29 +0000 (20:08 +0300)]
Update the README

19 months agoAdd the ARM64_E0PD check
Alexander Popov [Sun, 23 Oct 2022 16:31:16 +0000 (19:31 +0300)]
Add the ARM64_E0PD check

19 months agoFix the SCHED_CORE check: it's now available for ARM64 and ARM
Alexander Popov [Sun, 23 Oct 2022 16:14:46 +0000 (19:14 +0300)]
Fix the SCHED_CORE check: it's now available for ARM64 and ARM

19 months agoUpdate the self-protection checks adopted by KSPP (part V)
Alexander Popov [Sun, 23 Oct 2022 15:23:55 +0000 (18:23 +0300)]
Update the self-protection checks adopted by KSPP (part V)

Thanks to @kees

19 months agoUpdate the self-protection checks adopted by KSPP (part IV): IOMMU
Alexander Popov [Sat, 22 Oct 2022 21:05:45 +0000 (00:05 +0300)]
Update the self-protection checks adopted by KSPP (part IV): IOMMU

Thanks to @kees

19 months agoUpdate the self-protection checks adopted by KSPP (part III)
Alexander Popov [Sat, 22 Oct 2022 21:02:55 +0000 (00:02 +0300)]
Update the self-protection checks adopted by KSPP (part III)

Thanks to @kees

19 months agoUpdate the KSPP recommendations again
Alexander Popov [Sat, 22 Oct 2022 18:34:56 +0000 (21:34 +0300)]
Update the KSPP recommendations again

19 months agoUpdate the self-protection checks adopted by KSPP (part II)
Alexander Popov [Thu, 13 Oct 2022 16:33:11 +0000 (19:33 +0300)]
Update the self-protection checks adopted by KSPP (part II)

Thanks to @kees

19 months agoUpdate the self-protection checks adopted by KSPP (part I)
Alexander Popov [Thu, 13 Oct 2022 15:24:41 +0000 (18:24 +0300)]
Update the self-protection checks adopted by KSPP (part I)

Thanks to @kees

19 months agoUpdate the HW_RANDOM_TPM check
Alexander Popov [Thu, 13 Oct 2022 15:07:14 +0000 (18:07 +0300)]
Update the HW_RANDOM_TPM check

Clip OS says that RANDOM_TRUST_BOOTLOADER and RANDOM_TRUST_CPU should be
disabled if HW_RANDOM_TPM is enabled. The Clip OS description:
  Do not credit entropy included in Linux’s entropy pool when generated
  by the CPU manufacturer’s HWRNG, the bootloader or the UEFI firmware.
  Fast and robust initialization of Linux’s CSPRNG is instead achieved
  thanks to the TPM’s HWRNG.

At the same time KSPP recommends to enable RANDOM_TRUST_BOOTLOADER and
RANDOM_TRUST_CPU anyway:
  Get as much entropy as possible from external sources. The Chacha mixer
  isn't vulnerable to injected entropy, so even malicious sources
  should not cause problems.

In this situation, I think kconfig-hardened-check should check
only HW_RANDOM_TPM (there is no contradiction about it)
and leave the decision about RANDOM_TRUST_BOOTLOADER and
RANDOM_TRUST_CPU to the owner of the system.

19 months agoUpdate the UBSAN checks according to the KSPP recommendations
Alexander Popov [Thu, 13 Oct 2022 14:19:23 +0000 (17:19 +0300)]
Update the UBSAN checks according to the KSPP recommendations

Thanks to @kees

19 months agoUpdate the security policy checks adopted by KSPP
Alexander Popov [Thu, 13 Oct 2022 13:54:02 +0000 (16:54 +0300)]
Update the security policy checks adopted by KSPP

Thanks to @kees

19 months agoUpdate the KSPP recommendations
Alexander Popov [Thu, 13 Oct 2022 13:17:58 +0000 (16:17 +0300)]
Update the KSPP recommendations

19 months agoImprove the README
Alexander Popov [Wed, 12 Oct 2022 18:49:23 +0000 (21:49 +0300)]
Improve the README

20 months agoUpdate the README
Alexander Popov [Sun, 9 Oct 2022 22:10:48 +0000 (01:10 +0300)]
Update the README

20 months agoDrop some of my security policy recommendations
Alexander Popov [Sun, 9 Oct 2022 21:55:21 +0000 (00:55 +0300)]
Drop some of my security policy recommendations

20 months agoCheck SECURITY_SELINUX_DEVELOP (recommended by Clip OS)
Alexander Popov [Sun, 9 Oct 2022 18:31:25 +0000 (21:31 +0300)]
Check SECURITY_SELINUX_DEVELOP (recommended by Clip OS)

Clip OS description: it "will eventually be n".

20 months agoCheck SECURITY_SELINUX_BOOTPARAM (recommended by Clip OS)
Alexander Popov [Sun, 9 Oct 2022 18:25:33 +0000 (21:25 +0300)]
Check SECURITY_SELINUX_BOOTPARAM (recommended by Clip OS)

20 months agoImprove the HW_RANDOM_TPM check
Alexander Popov [Sun, 9 Oct 2022 18:04:19 +0000 (21:04 +0300)]
Improve the HW_RANDOM_TPM check

RANDOM_TRUST_BOOTLOADER and RANDOM_TRUST_CPU should be disabled if
HW_RANDOM_TPM is enabled.

The Clip OS description:
Do not credit entropy included in Linux’s entropy pool when generated
by the CPU manufacturer’s HWRNG, the bootloader or the UEFI firmware.
Fast and robust initialization of Linux’s CSPRNG is instead achieved
thanks to the TPM’s HWRNG.

20 months agoCheck COREDUMP (recommended by Clip OS)
Alexander Popov [Sun, 9 Oct 2022 17:49:58 +0000 (20:49 +0300)]
Check COREDUMP (recommended by Clip OS)

Disabling COREDUMP is needed for cutting userspace attack surface.

20 months agoCheck CONFIG_HW_RANDOM_TPM (recommended by Clip OS)
Alexander Popov [Sun, 9 Oct 2022 12:49:13 +0000 (15:49 +0300)]
Check CONFIG_HW_RANDOM_TPM (recommended by Clip OS)

20 months agoCheck X86_MCE, X86_MCE_INTEL, X86_MCE_AMD (recommended by Clip OS)
Alexander Popov [Sun, 9 Oct 2022 12:32:55 +0000 (15:32 +0300)]
Check X86_MCE, X86_MCE_INTEL, X86_MCE_AMD (recommended by Clip OS)

These options are enabled by default.

20 months agoImprove the README
Alexander Popov [Sun, 9 Oct 2022 11:23:20 +0000 (14:23 +0300)]
Improve the README

20 months agoUpdate the README
Alexander Popov [Wed, 5 Oct 2022 13:56:28 +0000 (16:56 +0300)]
Update the README

20 months agoAlso check 'nospectre_v2' with 'spectre_v2'
Alexander Popov [Sun, 2 Oct 2022 18:45:13 +0000 (21:45 +0300)]
Also check 'nospectre_v2' with 'spectre_v2'

20 months agoChange the reason for the 'nopti' check
Alexander Popov [Sun, 2 Oct 2022 18:44:47 +0000 (21:44 +0300)]
Change the reason for the 'nopti' check

20 months agoChange the reason for the 'nokaslr' check
Alexander Popov [Sun, 2 Oct 2022 17:52:47 +0000 (20:52 +0300)]
Change the reason for the 'nokaslr' check

KASLR is enabled by default.

20 months agoAdd the 'spectre_v2' check
Alexander Popov [Sun, 2 Oct 2022 11:27:03 +0000 (14:27 +0300)]
Add the 'spectre_v2' check

Don't normalize this cmdline option.

20 months agoAdd the 'nospectre_v2' check
Alexander Popov [Sun, 2 Oct 2022 11:23:19 +0000 (14:23 +0300)]
Add the 'nospectre_v2' check

20 months agoChange the reason for the 'nosmep' and 'nosmap' checks
Alexander Popov [Sun, 2 Oct 2022 11:04:10 +0000 (14:04 +0300)]
Change the reason for the 'nosmep' and 'nosmap' checks

SMEP and SMAP are enabled by default.

20 months agoAdd the 'nospectre_v1' check
Alexander Popov [Sun, 2 Oct 2022 10:39:38 +0000 (13:39 +0300)]
Add the 'nospectre_v1' check

20 months agoAdd the 'nopti' check
Alexander Popov [Sun, 2 Oct 2022 10:20:11 +0000 (13:20 +0300)]
Add the 'nopti' check

20 months agoAdd the comments: CC_IS_GCC and CC_IS_CLANG exist since v4.18
Alexander Popov [Sat, 24 Sep 2022 22:12:55 +0000 (01:12 +0300)]
Add the comments: CC_IS_GCC and CC_IS_CLANG exist since v4.18

20 months agoAdd the UBSAN_LOCAL_BOUNDS check for Clang build
Alexander Popov [Sat, 24 Sep 2022 21:51:25 +0000 (00:51 +0300)]
Add the UBSAN_LOCAL_BOUNDS check for Clang build

Explanations from the Linux kernel commit 6a6155f664e31c9be43cd:

When the kernel is compiled with Clang, -fsanitize=bounds expands to
-fsanitize=array-bounds and -fsanitize=local-bounds.

Enabling -fsanitize=local-bounds with Clang has the side-effect of
inserting traps.

That's why UBSAN_LOCAL_BOUNDS can enable the 'local-bounds' option
only when UBSAN_TRAP is enabled.

20 months agoUpdate the links to AOSP and GKI
Alexander Popov [Sun, 18 Sep 2022 13:02:23 +0000 (16:02 +0300)]
Update the links to AOSP and GKI

Android Open Source Project (AOSP):
https://source.android.com/docs/setup/build/building-kernels

Android Generic Kernel Image (GKI):
https://source.android.com/docs/core/architecture/kernel/gki-release-builds

Also add the GKI config `android13-5.10`.

Thanks to @h0t for the idea.

21 months agoUpdate the README
Alexander Popov [Fri, 2 Sep 2022 15:14:28 +0000 (18:14 +0300)]
Update the README

21 months agoDetect the compiler used for the kernel compilation
Alexander Popov [Fri, 2 Sep 2022 15:04:04 +0000 (18:04 +0300)]
Detect the compiler used for the kernel compilation

21 months agoDon't use CONFIG_CC_IS_GCC in the checks (it was introduced only in v4.18)
Alexander Popov [Fri, 2 Sep 2022 14:22:15 +0000 (17:22 +0300)]
Don't use CONFIG_CC_IS_GCC in the checks (it was introduced only in v4.18)

21 months agoMove get-nix-kconfig.py to kconfig_hardened_check/config_files/distros
Alexander Popov [Fri, 2 Sep 2022 11:50:39 +0000 (14:50 +0300)]
Move get-nix-kconfig.py to kconfig_hardened_check/config_files/distros

This script is still waiting for fixes from NixOS folks:
  Issue #63
  PR #64

21 months agoFix the X86_SMAP check: it is enabled by default since v5.19
Alexander Popov [Fri, 2 Sep 2022 11:38:18 +0000 (14:38 +0300)]
Fix the X86_SMAP check: it is enabled by default since v5.19

Refers to the issue #71

21 months agoCheck the nosmap and nosmep cmdline parameters
Alexander Popov [Fri, 2 Sep 2022 11:30:38 +0000 (14:30 +0300)]
Check the nosmap and nosmep cmdline parameters

21 months agoAdapt the RANDSTRUCT checks to the changes in Linux 5.19
Alexander Popov [Fri, 2 Sep 2022 11:15:06 +0000 (14:15 +0300)]
Adapt the RANDSTRUCT checks to the changes in Linux 5.19

Refers to the issue #71

21 months agoFix the comment: SHADOW_CALL_STACK is now available for gcc (Linux 5.18)
Alexander Popov [Fri, 2 Sep 2022 10:32:25 +0000 (13:32 +0300)]
Fix the comment: SHADOW_CALL_STACK is now available for gcc (Linux 5.18)

21 months agoAdd the SECURITY_LANDLOCK recommendation by KSPP
Alexander Popov [Fri, 2 Sep 2022 10:23:35 +0000 (13:23 +0300)]
Add the SECURITY_LANDLOCK recommendation by KSPP

21 months agoCheck the nokaslr cmdline parameter
Alexander Popov [Tue, 23 Aug 2022 18:05:45 +0000 (21:05 +0300)]
Check the nokaslr cmdline parameter

21 months agoRequire GCC for the GCC plugins (part II)
Alexander Popov [Sat, 20 Aug 2022 10:07:31 +0000 (13:07 +0300)]
Require GCC for the GCC plugins (part II)

The current result on arm64_full_hardened_5.17_clang.config (clang 12):

[+] Special report mode: show_fail
[+] Kconfig file to check: my/arm64_full_hardened_5.17_clang.config
[+] Detected architecture: ARM64
[+] Detected kernel version: 5.17
=========================================================================================================================
              option name               | type  |desired val | decision |      reason      | check result
=========================================================================================================================
CONFIG_GCC_PLUGINS                      |kconfig|     y      |defconfig | self_protection  | FAIL: CONFIG_CC_IS_GCC not "y"
CONFIG_STACKPROTECTOR_PER_TASK          |kconfig|     y      |defconfig | self_protection  | FAIL: not found
CONFIG_FORTIFY_SOURCE                   |kconfig|     y      |   kspp   | self_protection  | FAIL: not found
CONFIG_GCC_PLUGIN_LATENT_ENTROPY        |kconfig|     y      |   kspp   | self_protection  | FAIL: CONFIG_CC_IS_GCC not "y"
CONFIG_ZERO_CALL_USED_REGS              |kconfig|     y      |   kspp   | self_protection  | FAIL: not found
CONFIG_GCC_PLUGIN_RANDSTRUCT            |kconfig|     y      |   kspp   | self_protection  | FAIL: CONFIG_CC_IS_GCC not "y"
CONFIG_GCC_PLUGIN_STACKLEAK             |kconfig|     y      |   kspp   | self_protection  | FAIL: CONFIG_CC_IS_GCC not "y"
CONFIG_GCC_PLUGIN_RANDSTRUCT_PERFORMANCE|kconfig| is not set |  clipos  | self_protection  | FAIL: CONFIG_CC_IS_GCC not "y"
CONFIG_STACKLEAK_METRICS                |kconfig| is not set |  clipos  | self_protection  | FAIL: CONFIG_CC_IS_GCC not "y"
CONFIG_STACKLEAK_RUNTIME_DISABLE        |kconfig| is not set |  clipos  | self_protection  | FAIL: CONFIG_CC_IS_GCC not "y"

CONFIG_STACKPROTECTOR_PER_TASK, CONFIG_FORTIFY_SOURCE and CONFIG_ZERO_CALL_USED_REGS
will be supported for clang in future (WIP).

21 months agoRequire GCC for the GCC plugins
Alexander Popov [Sat, 20 Aug 2022 09:43:05 +0000 (12:43 +0300)]
Require GCC for the GCC plugins

21 months agoIntroduce cc_is_gcc and cc_is_clang
Alexander Popov [Sat, 20 Aug 2022 09:28:33 +0000 (12:28 +0300)]
Introduce cc_is_gcc and cc_is_clang

Use empty decision and reason for such kind of checks

21 months agoNo, the 'page_alloc.shuffle' should be set anyway
Alexander Popov [Sat, 20 Aug 2022 08:52:46 +0000 (11:52 +0300)]
No, the 'page_alloc.shuffle' should be set anyway

21 months agoDrop the comment about slub_debug=FZ
Alexander Popov [Sat, 20 Aug 2022 08:42:50 +0000 (11:42 +0300)]
Drop the comment about slub_debug=FZ

These are very slow debugging features

21 months agoAdd the debugfs check
Alexander Popov [Wed, 17 Aug 2022 06:33:00 +0000 (09:33 +0300)]
Add the debugfs check

Don't normalize this option value since the Linux kernel
doesn't use kstrtobool() for it.

21 months agoImprove the comments
Alexander Popov [Wed, 17 Aug 2022 06:11:42 +0000 (09:11 +0300)]
Improve the comments

21 months agoAdd the 'page_alloc.shuffle' check
Alexander Popov [Wed, 17 Aug 2022 05:40:44 +0000 (08:40 +0300)]
Add the 'page_alloc.shuffle' check

21 months agoAdd more values for the normalization
Alexander Popov [Sun, 14 Aug 2022 23:53:26 +0000 (02:53 +0300)]
Add more values for the normalization

21 months agoImplement the normalization of cmdline options
Alexander Popov [Sun, 14 Aug 2022 22:26:32 +0000 (01:26 +0300)]
Implement the normalization of cmdline options

21 months agoDescribe the meaning of the checks
Alexander Popov [Sun, 14 Aug 2022 11:02:22 +0000 (14:02 +0300)]
Describe the meaning of the checks

Don't add CmdlineChecks in add_kconfig_checks() to avoid wrong results
when the tool doesn't check the cmdline.

A common pattern for checking the 'param_x' cmdline parameter
that __overrides__ the 'PARAM_X_DEFAULT' kconfig option:
  l += [OR(CmdlineCheck(reason, decision, 'param_x', '1'),
           AND(KconfigCheck(reason, decision, 'PARAM_X_DEFAULT_ON', 'y'),
               CmdlineCheck(reason, decision, 'param_x, 'is not set')))]

Here we don't check the kconfig options or minimal kernel version
required for the cmdline parameters. That would make the checks
very complex and not give a 100% guarantee anyway.

21 months agoCheck the 'rodata' cmdline parameter on the arches except ARM64
Alexander Popov [Sat, 13 Aug 2022 23:16:18 +0000 (02:16 +0300)]
Check the 'rodata' cmdline parameter on the arches except ARM64

21 months agoCheck hardened_usercopy in the cmdline
Alexander Popov [Sat, 13 Aug 2022 19:58:05 +0000 (22:58 +0300)]
Check hardened_usercopy in the cmdline

21 months agoAdd the comment about vm.mmap_min_addr sysctl (for future reference)
Alexander Popov [Sat, 13 Aug 2022 19:50:00 +0000 (22:50 +0300)]
Add the comment about vm.mmap_min_addr sysctl (for future reference)

21 months agoSECURITY_DMESG_RESTRICT is more about cutting attack surface
Alexander Popov [Sat, 13 Aug 2022 19:31:15 +0000 (22:31 +0300)]
SECURITY_DMESG_RESTRICT is more about cutting attack surface

22 months agoImprove the slab_common.usercopy_fallback check
Alexander Popov [Thu, 21 Jul 2022 19:26:41 +0000 (22:26 +0300)]
Improve the slab_common.usercopy_fallback check

Having HARDENED_USERCOPY_FALLBACK disabled is not enough.

22 months agoAdd the slab_common.usercopy_fallback check
Alexander Popov [Thu, 21 Jul 2022 19:00:36 +0000 (22:00 +0300)]
Add the slab_common.usercopy_fallback check

22 months agoImprove the STACKPROTECTOR check
Alexander Popov [Thu, 21 Jul 2022 10:09:50 +0000 (13:09 +0300)]
Improve the STACKPROTECTOR check

The Linux kernel 4.16-4.17 has a weird STACKPROTECTOR configuration:
CC_STACKPROTECTOR_NONE -- stackprotector is disabled;
CC_STACKPROTECTOR_REGULAR -- similar to current STACKPROTECTOR;
CC_STACKPROTECTOR_STRONG -- similar to current STACKPROTECTOR_STRONG;
CC_STACKPROTECTOR_AUTO -- the best stack-protector that compiler provides.
These options are mutually exclusive.

Let's improve the STACKPROTECTOR check:
- Add CC_STACKPROTECTOR_REGULAR as a valid alternative name of this option;
- Add CC_STACKPROTECTOR_STRONG to avoid false negative result;
- Add CC_STACKPROTECTOR_AUTO hoping that it enables at least STACKPROTECTOR.

The STACKPROTECTOR_STRONG check still requires explicit configuration, not
CC_STACKPROTECTOR_AUTO.

Thanks to @izh1979 for the idea

22 months agoDon't mention LKDTM
Alexander Popov [Thu, 21 Jul 2022 06:27:47 +0000 (09:27 +0300)]
Don't mention LKDTM

I can't recommend disabling it, because LKDTM is used to test the kernel
hardening features.

But I cant recommend enabling it, because LKDTM contains intentional
memory corruption errors. It's not for production systems.

So let's simply drop the comment about LKDTM.

22 months agoAdd info about the LKDDb project by @cateee
Alexander Popov [Sun, 17 Jul 2022 15:20:52 +0000 (18:20 +0300)]
Add info about the LKDDb project by @cateee

#68

22 months agoCheck ARM64_BTI for userspace hardening
Alexander Popov [Sun, 17 Jul 2022 14:57:19 +0000 (17:57 +0300)]
Check ARM64_BTI for userspace hardening

22 months agoCheck ARM64_PTR_AUTH for userspace hardening
Alexander Popov [Sun, 17 Jul 2022 14:52:56 +0000 (17:52 +0300)]
Check ARM64_PTR_AUTH for userspace hardening

22 months agoAdd rodata check for ARM64
Alexander Popov [Sun, 17 Jul 2022 11:03:33 +0000 (14:03 +0300)]
Add rodata check for ARM64

23 months agoAdd iommu.passthrough check
Alexander Popov [Mon, 11 Jul 2022 06:59:26 +0000 (09:59 +0300)]
Add iommu.passthrough check

23 months agoAdd IOMMU_DEFAULT_PASSTHROUGH check
Alexander Popov [Mon, 11 Jul 2022 06:49:44 +0000 (09:49 +0300)]
Add IOMMU_DEFAULT_PASSTHROUGH check

23 months agoAdd iommu.strict check
Alexander Popov [Mon, 11 Jul 2022 06:25:07 +0000 (09:25 +0300)]
Add iommu.strict check

23 months agoAdd vsyscall check
Alexander Popov [Mon, 11 Jul 2022 05:59:37 +0000 (08:59 +0300)]
Add vsyscall check

23 months agoDon't add CmdlineChecks in add_kconfig_checks() to avoid wrong results
Alexander Popov [Sat, 9 Jul 2022 22:16:03 +0000 (01:16 +0300)]
Don't add CmdlineChecks in add_kconfig_checks() to avoid wrong results

23 months agoAdd slub_debug check
Alexander Popov [Sat, 9 Jul 2022 22:15:21 +0000 (01:15 +0300)]
Add slub_debug check

23 months agoAdd the release badge
Alexander Popov [Fri, 8 Jul 2022 23:48:40 +0000 (02:48 +0300)]
Add the release badge

23 months agoAdd the init_on_free check
Alexander Popov [Mon, 20 Jun 2022 18:08:25 +0000 (21:08 +0300)]
Add the init_on_free check

23 months agoAdd the page_poison check required for PAGE_POISONING_ZERO
Alexander Popov [Mon, 20 Jun 2022 18:01:15 +0000 (21:01 +0300)]
Add the page_poison check required for PAGE_POISONING_ZERO

23 months agoRewrite the slab_nomerge check
Alexander Popov [Mon, 20 Jun 2022 17:33:18 +0000 (20:33 +0300)]
Rewrite the slab_nomerge check

Use the presence check for slab_nomerge.
Also check that slab_merge is not set.

23 months agoRewrite the randomize_kstack_offset check
Alexander Popov [Mon, 20 Jun 2022 17:13:50 +0000 (20:13 +0300)]
Rewrite the randomize_kstack_offset check

Reusing "is not set" for CmdlineCheck is a nice hack.

23 months agoCheck that a kconfig option value is sane
Alexander Popov [Sun, 19 Jun 2022 20:45:41 +0000 (23:45 +0300)]
Check that a kconfig option value is sane

23 months agoAdd a tricky check for init_on_alloc and INIT_ON_ALLOC_DEFAULT_ON
Alexander Popov [Sun, 19 Jun 2022 19:49:03 +0000 (22:49 +0300)]
Add a tricky check for init_on_alloc and INIT_ON_ALLOC_DEFAULT_ON

Nice!

23 months agoMove the add_cmdline_checks() call earlier
Alexander Popov [Sun, 19 Jun 2022 19:38:23 +0000 (22:38 +0300)]
Move the add_cmdline_checks() call earlier

populate_with_data() must be called after all checks have been added.

2 years agoDon't check __name__ in __init__.py (it can't run separately anyway)
Alexander Popov [Wed, 8 Jun 2022 22:54:42 +0000 (01:54 +0300)]
Don't check __name__ in __init__.py (it can't run separately anyway)

2 years agoFix the pylint warning about isinstance
Alexander Popov [Wed, 8 Jun 2022 22:47:07 +0000 (01:47 +0300)]
Fix the pylint warning about isinstance

2 years agoDrop unneeded properties of ComplexOptCheck
Alexander Popov [Wed, 8 Jun 2022 22:32:59 +0000 (01:32 +0300)]
Drop unneeded properties of ComplexOptCheck

Thanks to the coverage info

2 years agoTurn some error conditions into assertions (part 4)
Alexander Popov [Wed, 8 Jun 2022 22:03:19 +0000 (01:03 +0300)]
Turn some error conditions into assertions (part 4)

2 years agoTurn some error conditions into assertions (part 3)
Alexander Popov [Wed, 8 Jun 2022 21:54:00 +0000 (00:54 +0300)]
Turn some error conditions into assertions (part 3)

2 years agoTurn some error conditions into assertions (part 2)
Alexander Popov [Wed, 8 Jun 2022 21:24:36 +0000 (00:24 +0300)]
Turn some error conditions into assertions (part 2)

2 years agoTurn some error conditions into assertions (part 1)
Alexander Popov [Wed, 8 Jun 2022 21:04:15 +0000 (00:04 +0300)]
Turn some error conditions into assertions (part 1)

2 years agoDrop useless checks, the ComplexOptCheck constructor has already checked this
Alexander Popov [Wed, 8 Jun 2022 17:13:42 +0000 (20:13 +0300)]
Drop useless checks, the ComplexOptCheck constructor has already checked this

2 years agogithub actions: Test error handling (part 2)
Alexander Popov [Wed, 8 Jun 2022 16:37:15 +0000 (19:37 +0300)]
github actions: Test error handling (part 2)

And also test the tool without "-l".

2 years agogithub actions: Test error handling (part 1)
Alexander Popov [Wed, 8 Jun 2022 15:17:39 +0000 (18:17 +0300)]
github actions: Test error handling (part 1)

2 years agogithub actions: Collect coverage for error handling (part 1)
Alexander Popov [Mon, 30 May 2022 22:30:42 +0000 (01:30 +0300)]
github actions: Collect coverage for error handling (part 1)

2 years agogithub actions: upgrade to codecov-action@v2
Alexander Popov [Mon, 30 May 2022 22:43:25 +0000 (01:43 +0300)]
github actions: upgrade to codecov-action@v2