mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-13 01:06:43 +00:00
UBSAN uses compile-time instrumentation to catch undefined behavior (UB). Compiler inserts code that perform certain kinds of checks before operations that could cause UB. If check fails (i.e. UB detected) __ubsan_handle_* function called to print error message. So the most of the work is done by compiler. This patch just implements ubsan handlers printing errors. GCC has this capability since 4.9.x [1] (see -fsanitize=undefined option and its suboptions). However GCC 5.x has more checkers implemented [2]. Article [3] has a bit more details about UBSAN in the GCC. [1] - https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html [2] - https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html [3] - http://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/ Issues which UBSAN has found thus far are: Found bugs: * out-of-bounds access - |
||
|---|---|---|
| .. | ||
| .gitignore | ||
| aslr.c | ||
| cmdline.c | ||
| cpuflags.c | ||
| early_serial_console.c | ||
| eboot.c | ||
| eboot.h | ||
| efi_stub_32.S | ||
| efi_stub_64.S | ||
| efi_thunk_64.S | ||
| head_32.S | ||
| head_64.S | ||
| Makefile | ||
| misc.c | ||
| misc.h | ||
| mkpiggy.c | ||
| string.c | ||
| vmlinux.lds.S | ||