HomePhabricator

Implement Control Flow Integrity for virtual calls.

Description

Implement Control Flow Integrity for virtual calls.

This patch introduces the -fsanitize=cfi-vptr flag, which enables a control
flow integrity scheme that checks that virtual calls take place using a vptr of
the correct dynamic type. More details in the new docs/ControlFlowIntegrity.rst
file.

It also introduces the -fsanitize=cfi flag, which is currently a synonym for
-fsanitize=cfi-vptr, but will eventually cover all CFI checks implemented
in Clang.

Differential Revision: http://reviews.llvm.org/D7424

Details

Committed
pccFeb 20 2015, 12:30 PM
Differential Revision
D7424: Implement Control Flow Integrity for virtual calls.
Parents
rL230054: Introduce bitset metadata format and bitset lowering pass.
Branches
Unknown
Tags
Unknown