#include "lkdtm.h"
#include <linux/kfence.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/sched.h>
static struct kmem_cache *double_free_cache;
static struct kmem_cache *a_cache;
static struct kmem_cache *b_cache;
static volatile int __offset = …;
static void lkdtm_VMALLOC_LINEAR_OVERFLOW(void)
{ … }
static void lkdtm_SLAB_LINEAR_OVERFLOW(void)
{ … }
static void lkdtm_WRITE_AFTER_FREE(void)
{ … }
static void lkdtm_READ_AFTER_FREE(void)
{ … }
static void lkdtm_KFENCE_READ_AFTER_FREE(void)
{ … }
static void lkdtm_WRITE_BUDDY_AFTER_FREE(void)
{ … }
static void lkdtm_READ_BUDDY_AFTER_FREE(void)
{ … }
static void lkdtm_SLAB_INIT_ON_ALLOC(void)
{ … }
static void lkdtm_BUDDY_INIT_ON_ALLOC(void)
{ … }
static void lkdtm_SLAB_FREE_DOUBLE(void)
{ … }
static void lkdtm_SLAB_FREE_CROSS(void)
{ … }
static void lkdtm_SLAB_FREE_PAGE(void)
{ … }
static void ctor_double_free(void *region)
{ … }
static void ctor_a(void *region)
{ … }
static void ctor_b(void *region)
{ … }
void __init lkdtm_heap_init(void)
{ … }
void __exit lkdtm_heap_exit(void)
{ … }
static struct crashtype crashtypes[] = …;
struct crashtype_category heap_crashtypes = …;