Skip to content

ControlFlowIntegrity Clang 7

Viktor Ostashevskyi edited this page Sep 27, 2018 · 1 revision

ControlFlowIntegritySanitizer

Available checks

Similar to UndefinedBehaviorSanitizer, this is a set of smaller sanitizers, which can be used independently or in cfi group. Both trapping and recovering is supported.

Sanitizer cfi Description
cfi-cast-strict - Strict cast checks
cfi-derived-cast X Base-to-derived cast to the wrong dynamic type
cfi-icall X Indirect call of a function with wrong dynamic type
cfi-unrelated-cast X Cast from void* or another nrelated type to the wrong dynamic type
cfi-nvcall X Non-virtual call via an object whose vptr is of the wrong dynamic type
cfi-vcall X Virtual call via an object whose vptr is of the wrong dynamic type
cfi-mfcall X Indirect call via a member function pointer with wrong dynamic type

Clang options

Type Name Default value Description
bool -f[no]sanitize-cfi-cross-dso false Enable checks for cross-DSO calls
bool -fsanitize-cfi-icall-generalize-pointers false Generalize pointers in indirect call type signature checks