Merge tag 'hardening-v6.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull hardening fixes from Kees Cook: - lib/prime_numbers: KUnit test should not select PRIME_NUMBERS (Geert Uytterhoeven) - ubsan: Fix panic from test_ubsan_out_of_bounds (Mostafa Saleh) - ubsan: Remove 'default UBSAN' from UBSAN_INTEGER_WRAP (Nathan Chancellor) - string: Add load_unaligned_zeropad() code path to sized_strscpy() (Peter Collingbourne) - kasan: Add strscpy() test to trigger tag fault on arm64 (Vincenzo Frascino) - Disable GCC randstruct for COMPILE_TEST * tag 'hardening-v6.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: lib/prime_numbers: KUnit test should not select PRIME_NUMBERS ubsan: Fix panic from test_ubsan_out_of_bounds lib/Kconfig.ubsan: Remove 'default UBSAN' from UBSAN_INTEGER_WRAP hardening: Disable GCC randstruct for COMPILE_TEST kasan: Add strscpy() test to trigger tag fault on arm64 string: Add load_unaligned_zeropad() code path to sized_strscpy()
This commit is contained in:
commit
3bf8a4598f
7 files changed
+44
-13
No files matched your search
@@ -1567,6 +1567,7 @@ static void kasan_memcmp(struct kunit *test)
|
||||
static void kasan_strings(struct kunit *test)
|
||||
{
|
||||
char *ptr;
|
||||
char *src;
|
||||
size_t size = 24;
|
||||
|
||||
/*
|
||||
@@ -1578,6 +1579,25 @@ static void kasan_strings(struct kunit *test)
|
||||
ptr = kmalloc(size, GFP_KERNEL | __GFP_ZERO);
|
||||
KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
|
||||
|
||||
src = kmalloc(KASAN_GRANULE_SIZE, GFP_KERNEL | __GFP_ZERO);
|
||||
strscpy(src, "f0cacc1a0000000", KASAN_GRANULE_SIZE);
|
||||
|
||||
/*
|
||||
* Make sure that strscpy() does not trigger KASAN if it overreads into
|
||||
* poisoned memory.
|
||||
*
|
||||
* The expected size does not include the terminator '\0'
|
||||
* so it is (KASAN_GRANULE_SIZE - 2) ==
|
||||
* KASAN_GRANULE_SIZE - ("initial removed character" + "\0").
|
||||
*/
|
||||
KUNIT_EXPECT_EQ(test, KASAN_GRANULE_SIZE - 2,
|
||||
strscpy(ptr, src + 1, KASAN_GRANULE_SIZE));
|
||||
|
||||
/* strscpy should fail if the first byte is unreadable. */
|
||||
KUNIT_EXPECT_KASAN_FAIL(test, strscpy(ptr, src + KASAN_GRANULE_SIZE,
|
||||
KASAN_GRANULE_SIZE));
|
||||
|
||||
kfree(src);
|
||||
kfree(ptr);
|
||||
|
||||
/*
|
||||
|
||||
Reference in new issue
Block a user