Enable CONFIG_INIT_STACK_ALL_PATTERN in all_tests.config. This helps to detect use of uninitialized local variables.
This option found an uninitialized data bug in the cs_dsp test.
Signed-off-by: Richard Fitzgerald rf@opensource.cirrus.com --- tools/testing/kunit/configs/all_tests.config | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/testing/kunit/configs/all_tests.config b/tools/testing/kunit/configs/all_tests.config index cdd9782f9646..4a60bb71fe72 100644 --- a/tools/testing/kunit/configs/all_tests.config +++ b/tools/testing/kunit/configs/all_tests.config @@ -10,6 +10,7 @@ CONFIG_KUNIT_EXAMPLE_TEST=y CONFIG_KUNIT_ALL_TESTS=y
CONFIG_FORTIFY_SOURCE=y +CONFIG_INIT_STACK_ALL_PATTERN=y
CONFIG_IIO=y
On Fri, 11 Apr 2025 at 17:59, Richard Fitzgerald rf@opensource.cirrus.com wrote:
Enable CONFIG_INIT_STACK_ALL_PATTERN in all_tests.config. This helps to detect use of uninitialized local variables.
This option found an uninitialized data bug in the cs_dsp test.
Signed-off-by: Richard Fitzgerald rf@opensource.cirrus.com
Hmm... for KASAN, we had a separate config fragment for picking these sorts of things up. Then again, given we've already got stackinit tests, we probably want this anyway, and it's clearly useful to have it as a default.
Reviewed-by: David Gow davidgow@google.com
Cheers, -- David
tools/testing/kunit/configs/all_tests.config | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/testing/kunit/configs/all_tests.config b/tools/testing/kunit/configs/all_tests.config index cdd9782f9646..4a60bb71fe72 100644 --- a/tools/testing/kunit/configs/all_tests.config +++ b/tools/testing/kunit/configs/all_tests.config @@ -10,6 +10,7 @@ CONFIG_KUNIT_EXAMPLE_TEST=y CONFIG_KUNIT_ALL_TESTS=y
CONFIG_FORTIFY_SOURCE=y +CONFIG_INIT_STACK_ALL_PATTERN=y
CONFIG_IIO=y
-- 2.39.5
On Fri, 11 Apr 2025 10:59:04 +0100 Richard Fitzgerald wrote:
Enable CONFIG_INIT_STACK_ALL_PATTERN in all_tests.config. This helps to detect use of uninitialized local variables.
This option found an uninitialized data bug in the cs_dsp test.
Signed-off-by: Richard Fitzgerald rf@opensource.cirrus.com
tools/testing/kunit/configs/all_tests.config | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/testing/kunit/configs/all_tests.config b/tools/testing/kunit/configs/all_tests.config index cdd9782f9646..4a60bb71fe72 100644 --- a/tools/testing/kunit/configs/all_tests.config +++ b/tools/testing/kunit/configs/all_tests.config @@ -10,6 +10,7 @@ CONFIG_KUNIT_EXAMPLE_TEST=y CONFIG_KUNIT_ALL_TESTS=y CONFIG_FORTIFY_SOURCE=y +CONFIG_INIT_STACK_ALL_PATTERN=y
This breaks kunit for older compilers:
$ ./tools/testing/kunit/kunit.py run --alltests --json --arch=x86_64 Configuring KUnit Kernel ... Regenerating .config ... Populating config with: $ make ARCH=x86_64 O=.kunit olddefconfig ERROR:root:Not all Kconfig options selected in kunitconfig were in the generated .config. This is probably due to unsatisfied dependencies. Missing: CONFIG_INIT_STACK_ALL_PATTERN=y
$ gcc --version gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-5)
IIUC GCC 11.5 is supported so pattern init can't be a hard requirement. How about we do this instead? Can you check if it'd work for you?
diff --git a/security/Kconfig.hardening b/security/Kconfig.hardening index c17366ce8224..904b99f34cd0 100644 --- a/security/Kconfig.hardening +++ b/security/Kconfig.hardening @@ -113,6 +113,7 @@ choice bool "pattern-init everything (strongest)" + default KUNIT_ALL_TESTS depends on CC_HAS_AUTO_VAR_INIT_PATTERN depends on !KMSAN help Initializes everything on the stack (including padding) with a specific debug value. This is intended to eliminate
On 29/5/25 16:38, Jakub Kicinski wrote:
On Fri, 11 Apr 2025 10:59:04 +0100 Richard Fitzgerald wrote:
Enable CONFIG_INIT_STACK_ALL_PATTERN in all_tests.config. This helps to detect use of uninitialized local variables.
This option found an uninitialized data bug in the cs_dsp test.
Signed-off-by: Richard Fitzgerald rf@opensource.cirrus.com
tools/testing/kunit/configs/all_tests.config | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/testing/kunit/configs/all_tests.config b/tools/testing/kunit/configs/all_tests.config index cdd9782f9646..4a60bb71fe72 100644 --- a/tools/testing/kunit/configs/all_tests.config +++ b/tools/testing/kunit/configs/all_tests.config @@ -10,6 +10,7 @@ CONFIG_KUNIT_EXAMPLE_TEST=y CONFIG_KUNIT_ALL_TESTS=y CONFIG_FORTIFY_SOURCE=y +CONFIG_INIT_STACK_ALL_PATTERN=y
This breaks kunit for older compilers:
Drop it then. It's not essential. Just something that showed a bug in a test so I thought would be useful to test always. But if there are compatibility problems it would be better not to have it in all_tests.
linux-kselftest-mirror@lists.linaro.org