Module Name: src Committed By: kamil Date: Fri Aug 3 02:05:43 UTC 2018
Added Files: src/common/lib/libc/misc: ubsan.c Log Message: Import micro-UBSan (ubsan.c) This is a reimplementation of the Undefined Behavior Sanitizer with the following properties: - pure C implementation, - no -fsanitize=vpts support, as it requires RTTI support and C++ low-level routies to validate whether C++ objects are compatible - designed to be used inside libc and known as uUBSan or user-UBSan - designed to be shared with kernel and known as kUBSan or kernel-UBSan - designed to be usable with ATF tests as a standalone runtime, reachable without any MK* switches - designed to be safer for hardening as it does not have side effects on executables like writing to a selected location on demand - controllable with environment variable LIBC_UBSAN with options: * a - abort on report * A - do not abort on a report (unless a failure is unrecoverable) * e - output report to stderr * E - do not output report on stderr * l - output report on syslog (LOG_DEBUG | LOG_USER) * L - do not output report on syslog * o - output report on stdout * O - do not output report on stdout The default options are: "AeLO". - compatible with Clang (3.8, 7.x) and GCC (6.x) code generation - all handlers (except =vptr) from Clang/LLVM up to 7svn are supported This file does not follow the regular KNF style, due to potential licensing concerns. Tested with Clang amd64+i386 and GCC amd64+i386. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/common/lib/libc/misc/ubsan.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.