⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.144
Server IP:
157.245.143.252
Server:
Linux www 6.11.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct 14 13:19:59 UTC 2024 x86_64
Server Software:
nginx/1.26.0
PHP Version:
8.3.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
src
/
linux-headers-6.11.0-9
/
include
/
linux
/
View File Name :
kmsan-checks.h
/* SPDX-License-Identifier: GPL-2.0 */ /* * KMSAN checks to be used for one-off annotations in subsystems. * * Copyright (C) 2017-2022 Google LLC * Author: Alexander Potapenko
* */ #ifndef _LINUX_KMSAN_CHECKS_H #define _LINUX_KMSAN_CHECKS_H #include
#ifdef CONFIG_KMSAN /** * kmsan_poison_memory() - Mark the memory range as uninitialized. * @address: address to start with. * @size: size of buffer to poison. * @flags: GFP flags for allocations done by this function. * * Until other data is written to this range, KMSAN will treat it as * uninitialized. Error reports for this memory will reference the call site of * kmsan_poison_memory() as origin. */ void kmsan_poison_memory(const void *address, size_t size, gfp_t flags); /** * kmsan_unpoison_memory() - Mark the memory range as initialized. * @address: address to start with. * @size: size of buffer to unpoison. * * Until other data is written to this range, KMSAN will treat it as * initialized. */ void kmsan_unpoison_memory(const void *address, size_t size); /** * kmsan_check_memory() - Check the memory range for being initialized. * @address: address to start with. * @size: size of buffer to check. * * If any piece of the given range is marked as uninitialized, KMSAN will report * an error. */ void kmsan_check_memory(const void *address, size_t size); /** * kmsan_copy_to_user() - Notify KMSAN about a data transfer to userspace. * @to: destination address in the userspace. * @from: source address in the kernel. * @to_copy: number of bytes to copy. * @left: number of bytes not copied. * * If this is a real userspace data transfer, KMSAN checks the bytes that were * actually copied to ensure there was no information leak. If @to belongs to * the kernel space (which is possible for compat syscalls), KMSAN just copies * the metadata. */ void kmsan_copy_to_user(void __user *to, const void *from, size_t to_copy, size_t left); /** * kmsan_memmove() - Notify KMSAN about a data copy within kernel. * @to: destination address in the kernel. * @from: source address in the kernel. * @size: number of bytes to copy. * * Invoked after non-instrumented version (e.g. implemented using assembly * code) of memmove()/memcpy() is called, in order to copy KMSAN's metadata. */ void kmsan_memmove(void *to, const void *from, size_t to_copy); #else static inline void kmsan_poison_memory(const void *address, size_t size, gfp_t flags) { } static inline void kmsan_unpoison_memory(const void *address, size_t size) { } static inline void kmsan_check_memory(const void *address, size_t size) { } static inline void kmsan_copy_to_user(void __user *to, const void *from, size_t to_copy, size_t left) { } static inline void kmsan_memmove(void *to, const void *from, size_t to_copy) { } #endif #endif /* _LINUX_KMSAN_CHECKS_H */