mirror of https://github.com/torvalds/linux.git
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 - |
||
|---|---|---|
| .. | ||
| broadcom | ||
| efi | ||
| Kconfig | ||
| Makefile | ||
| arm_scpi.c | ||
| dcdbas.c | ||
| dcdbas.h | ||
| dell_rbu.c | ||
| dmi-id.c | ||
| dmi-sysfs.c | ||
| dmi_scan.c | ||
| edd.c | ||
| iscsi_ibft.c | ||
| iscsi_ibft_find.c | ||
| memmap.c | ||
| pcdp.c | ||
| pcdp.h | ||
| psci.c | ||
| qcom_scm-32.c | ||
| qcom_scm-64.c | ||
| qcom_scm.c | ||
| qcom_scm.h | ||
| raspberrypi.c | ||