Lines Matching +full:deep +full:- +full:touch
1 // SPDX-License-Identifier: GPL-2.0
4 * bad alignment, bad loops, bad locking, bad scheduling, deep stacks, and
42 * - function marked noinline
43 * - stack variables are marked volatile
44 * - stack variables are written (memset()) and read (buf[..] passed as arg)
45 * - function may have external effects (memzero_explicit())
46 * - no tail recursion possible
57 ret = recursive_loop((int)buf[remaining % sizeof(buf)] - 1); in recursive_loop()
127 /* Same as above but will only get a canary with -fstack-protector-strong */
153 pr_info("Stack offset: %d\n", (int)(stack_addr - (uintptr_t)&magic)); in lkdtm_REPORT_STACK()
171 if (*canary == current->stack_canary) in __lkdtm_REPORT_STACK_CANARY()
205 pr_warn("ERROR: saw pid %d again -- please use a new pid\n", pid); in __lkdtm_REPORT_STACK_CANARY()
276 static volatile unsigned int huge = INT_MAX - 2;
337 /* For both, touch all bytes in the actual member size. */ in lkdtm_ARRAY_BOUNDS()
338 for (i = 0; i < sizeof(checked->data); i++) in lkdtm_ARRAY_BOUNDS()
339 checked->data[i] = 'A'; in lkdtm_ARRAY_BOUNDS()
341 * For the uninstrumented flex array member, also touch 1 byte in lkdtm_ARRAY_BOUNDS()
345 not_checked->data[i] = 'A'; in lkdtm_ARRAY_BOUNDS()
348 for (i = 0; i < sizeof(checked->data) + 1; i++) in lkdtm_ARRAY_BOUNDS()
349 checked->data[i] = 'B'; in lkdtm_ARRAY_BOUNDS()
378 inst->count = fam_count; in lkdtm_FAM_BOUNDS()
380 inst->array[1] = fam_count; in lkdtm_FAM_BOUNDS()
381 ignored = inst->array[1]; in lkdtm_FAM_BOUNDS()
384 inst->array[fam_count] = fam_count; in lkdtm_FAM_BOUNDS()
385 ignored = inst->array[fam_count]; in lkdtm_FAM_BOUNDS()
416 * test_head.next->prev = &good.node in lkdtm_CORRUPT_LIST_ADD()
471 const unsigned char *ptr = stack - 1; in lkdtm_STACK_GUARD_PAGE_LEADING()
524 * To test the post-write pinning verification we need to call in lkdtm_UNSET_SMEP()
558 pr_err("XFAIL: this test is x86_64-only\n"); in lkdtm_UNSET_SMEP()
571 .type = 3, /* expand-up, writable, accessed data */ in lkdtm_DOUBLE_FAULT()
573 .d = 1, /* 32-bit */ in lkdtm_DOUBLE_FAULT()
583 * Put our zero-limit segment in SS and then trigger a fault. The in lkdtm_DOUBLE_FAULT()
584 * 4-byte access to (%esp) will fault with #SS, and the attempt to in lkdtm_DOUBLE_FAULT()
588 * would also double-fault, resulting in the NMI or MCE being lost. in lkdtm_DOUBLE_FAULT()
595 pr_err("XFAIL: this test is ia32-only\n"); in lkdtm_DOUBLE_FAULT()
635 pr_err("XFAIL: this test is arm64-only\n"); in lkdtm_CORRUPT_PAC()