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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@230055 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- docs/ControlFlowIntegrity.rst 74 additions, 0 deletionsdocs/ControlFlowIntegrity.rst
- docs/ControlFlowIntegrityDesign.rst 59 additions, 0 deletionsdocs/ControlFlowIntegrityDesign.rst
- docs/UsersManual.rst 4 additions, 0 deletionsdocs/UsersManual.rst
- docs/index.rst 1 addition, 0 deletionsdocs/index.rst
- include/clang/AST/Mangle.h 3 additions, 0 deletionsinclude/clang/AST/Mangle.h
- include/clang/Basic/Sanitizers.def 4 additions, 0 deletionsinclude/clang/Basic/Sanitizers.def
- include/clang/Driver/Driver.h 3 additions, 3 deletionsinclude/clang/Driver/Driver.h
- include/clang/Driver/SanitizerArgs.h 1 addition, 0 deletionsinclude/clang/Driver/SanitizerArgs.h
- lib/AST/ItaniumMangle.cpp 18 additions, 0 deletionslib/AST/ItaniumMangle.cpp
- lib/AST/MicrosoftMangle.cpp 7 additions, 0 deletionslib/AST/MicrosoftMangle.cpp
- lib/CodeGen/CGClass.cpp 33 additions, 0 deletionslib/CodeGen/CGClass.cpp
- lib/CodeGen/CGVTables.cpp 61 additions, 0 deletionslib/CodeGen/CGVTables.cpp
- lib/CodeGen/CodeGenFunction.h 3 additions, 0 deletionslib/CodeGen/CodeGenFunction.h
- lib/CodeGen/CodeGenModule.h 5 additions, 0 deletionslib/CodeGen/CodeGenModule.h
- lib/CodeGen/ItaniumCXXABI.cpp 4 additions, 0 deletionslib/CodeGen/ItaniumCXXABI.cpp
- lib/Driver/Driver.cpp 9 additions, 4 deletionslib/Driver/Driver.cpp
- lib/Driver/SanitizerArgs.cpp 6 additions, 1 deletionlib/Driver/SanitizerArgs.cpp
- lib/Driver/Tools.cpp 4 additions, 3 deletionslib/Driver/Tools.cpp
- test/CodeGenCXX/cfi-vptr.cpp 74 additions, 0 deletionstest/CodeGenCXX/cfi-vptr.cpp
- test/Driver/fsanitize.c 4 additions, 0 deletionstest/Driver/fsanitize.c
Loading
Please register or sign in to comment