Skip to content

Commit

Permalink
kasan: Remove redefinitions
Browse files Browse the repository at this point in the history
Well done, CAF.

Test: build kernel with CONFIG_KASAN=y
Change-Id: I9ee23d50253ba44d99fa75cef301790228805ee8
Signed-off-by: Alexander Winkowski <[email protected]>
  • Loading branch information
dereference23 authored and Arjun-Ingole committed Apr 25, 2022
1 parent 8322f37 commit b980189
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 62 deletions.
49 changes: 0 additions & 49 deletions mm/kasan/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -627,55 +627,6 @@ void kasan_report(unsigned long addr, size_t size, bool is_write, unsigned long
user_access_restore(flags);
}

/* Emitted by compiler to poison alloca()ed objects. */
void __asan_alloca_poison(unsigned long addr, size_t size)
{
size_t rounded_up_size = round_up(size, KASAN_SHADOW_SCALE_SIZE);
size_t padding_size = round_up(size, KASAN_ALLOCA_REDZONE_SIZE) -
rounded_up_size;
size_t rounded_down_size = round_down(size, KASAN_SHADOW_SCALE_SIZE);

const void *left_redzone = (const void *)(addr -
KASAN_ALLOCA_REDZONE_SIZE);
const void *right_redzone = (const void *)(addr + rounded_up_size);

WARN_ON(!IS_ALIGNED(addr, KASAN_ALLOCA_REDZONE_SIZE));

kasan_unpoison_shadow((const void *)(addr + rounded_down_size),
size - rounded_down_size);
kasan_poison_shadow(left_redzone, KASAN_ALLOCA_REDZONE_SIZE,
KASAN_ALLOCA_LEFT);
kasan_poison_shadow(right_redzone,
padding_size + KASAN_ALLOCA_REDZONE_SIZE,
KASAN_ALLOCA_RIGHT);
}
EXPORT_SYMBOL(__asan_alloca_poison);

/* Emitted by compiler to unpoison alloca()ed areas when the stack unwinds. */
void __asan_allocas_unpoison(const void *stack_top, const void *stack_bottom)
{
if (unlikely(!stack_top || stack_top > stack_bottom))
return;

kasan_unpoison_shadow(stack_top, stack_bottom - stack_top);
}
EXPORT_SYMBOL(__asan_allocas_unpoison);

/* Emitted by the compiler to [un]poison local variables. */
#define DEFINE_ASAN_SET_SHADOW(byte) \
void __asan_set_shadow_##byte(const void *addr, size_t size) \
{ \
__memset((void *)addr, 0x##byte, size); \
} \
EXPORT_SYMBOL(__asan_set_shadow_##byte)

DEFINE_ASAN_SET_SHADOW(00);
DEFINE_ASAN_SET_SHADOW(f1);
DEFINE_ASAN_SET_SHADOW(f2);
DEFINE_ASAN_SET_SHADOW(f3);
DEFINE_ASAN_SET_SHADOW(f5);
DEFINE_ASAN_SET_SHADOW(f8);

#ifdef CONFIG_MEMORY_HOTPLUG
static bool shadow_mapped(unsigned long addr)
{
Expand Down
13 changes: 0 additions & 13 deletions mm/kasan/report.c
Original file line number Diff line number Diff line change
Expand Up @@ -257,19 +257,6 @@ static void print_shadow_for_address(const void *addr)
}
}

void kasan_report_invalid_free(void *object, unsigned long ip)
{
unsigned long flags;

kasan_start_report(&flags);
pr_err("BUG: KASAN: double-free or invalid-free in %pS\n", (void *)ip);
pr_err("\n");
print_address_description(object);
pr_err("\n");
print_shadow_for_address(object);
kasan_end_report(&flags);
}

static bool report_enabled(void)
{
if (current->kasan_depth)
Expand Down

0 comments on commit b980189

Please sign in to comment.