On Thu, Aug 12, 2021 at 10:57 AM Marco Elver <elver@xxxxxxxxxx> wrote: > > On Wed, 11 Aug 2021 at 21:21, <andrey.konovalov@xxxxxxxxx> wrote: > > From: Andrey Konovalov <andreyknvl@xxxxxxxxx> > > > > kmalloc_oob_memset_*() tests do writes past the allocated objects. > > As the result, they corrupt memory, which might lead to crashes with the > > HW_TAGS mode, as it neither uses quarantine nor redzones. > > > > Adjust the tests to only write memory within the aligned kmalloc objects. > > > > Signed-off-by: Andrey Konovalov <andreyknvl@xxxxxxxxx> > > --- > > lib/test_kasan.c | 22 +++++++++++----------- > > 1 file changed, 11 insertions(+), 11 deletions(-) > > > > diff --git a/lib/test_kasan.c b/lib/test_kasan.c > > index c82a82eb5393..fd00cd35e82c 100644 > > --- a/lib/test_kasan.c > > +++ b/lib/test_kasan.c > > @@ -431,61 +431,61 @@ static void kmalloc_uaf_16(struct kunit *test) > > static void kmalloc_oob_memset_2(struct kunit *test) > > { > > char *ptr; > > - size_t size = 8; > > + size_t size = 128 - KASAN_GRANULE_SIZE; > > > > ptr = kmalloc(size, GFP_KERNEL); > > KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); > > > > - KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr + 7 + OOB_TAG_OFF, 0, 2)); > > + KUNIT_EXPECT_KASAN_FAIL(test, memset(ptr + size, 0, 2)); > > I think one important aspect of these tests in generic mode is that > the written range touches both valid and invalid memory. I think that > was meant to test any explicit instrumentation isn't just looking at > the starting address, but at the whole range. Good point! > It seems that with these changes that is no longer tested. Could we > somehow make it still test that? Yes, will do in v2. Thanks, Marco!