Skip to content
  1. May 09, 2018
  2. Dec 13, 2017
  3. Nov 15, 2017
  4. Nov 14, 2017
    • Mitch Phillips's avatar
      [cfi-verify] Add DOT graph printing for GraphResult objects. · 02993892
      Mitch Phillips authored
      Allows users to view GraphResult objects in a DOT directed-graph format. This feature can be turned on through the --print-graphs flag.
      
      Also enabled pretty-printing of instructions in output. Together these features make analysis of unprotected CF instructions much easier by providing a visual control flow graph.
      
      Reviewers: pcc
      
      Subscribers: llvm-commits, kcc, vlad.tsyrklevich
      
      Differential Revision: https://reviews.llvm.org/D39819
      
      llvm-svn: 318211
      02993892
  5. Nov 10, 2017
    • Mitch Phillips's avatar
      [cfi-verify] Made FileAnalysis operate on a GraphResult rather than build one and validate it. · 3b9ea32e
      Mitch Phillips authored
      Refactors the behaviour of building graphs out of FileAnalysis, allowing for analysis of the GraphResult by the callee without having to rebuild the graph. Means when we want to analyse the constructed graph (planned for later revisions), we don't do repeated work.
      
      Also makes CFI verification in FileAnalysis now return an enum that allows us to differentiate why something failed, not just that it did/didn't fail.
      
      Reviewers: vlad.tsyrklevich
      
      Subscribers: kcc, pcc, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D39764
      
      llvm-svn: 317927
      3b9ea32e
  6. Nov 09, 2017
    • Mitch Phillips's avatar
      [cfi-verify] Adds blacklist blame behaviour to cfi-verify. · d64af525
      Mitch Phillips authored
      Adds the blacklist behaviour to llvm-cfi-verify. Now will calculate which lines caused expected failures in the blacklist and reports the number of affected indirect CF instructions for each blacklist entry.
      
      Also moved DWARF checking after instruction analysis to improve performance significantly - unrolling the inlining stack is expensive.
      
      Reviewers: vlad.tsyrklevich
      
      Subscribers: aprantl, pcc, kcc, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D39750
      
      llvm-svn: 317743
      d64af525
  7. Nov 04, 2017
  8. Nov 03, 2017
    • Mitch Phillips's avatar
      [cfi-verify] Add blacklist parsing for result filtering. · c15bdf55
      Mitch Phillips authored
      Adds blacklist parsing behaviour for filtering results into four categories:
      
       - Expected Protected: Things that are not in the blacklist and are protected.
       - Unexpected Protected: Things that are in the blacklist and are protected.
       - Expected Unprotected: Things that are in the blacklist and are unprotected.
       - Unexpected Unprotected: Things that are not in the blacklist and are unprotected.
      
       now can optionally be invoked with a second command line argument, which specifies the blacklist file that the binary was built with.
      
      Current  statistics for chromium:
      
      Reviewers: vlad.tsyrklevich
      
      Subscribers: mgorny, llvm-commits, pcc, kcc
      
      Differential Revision: https://reviews.llvm.org/D39525
      
      llvm-svn: 317364
      c15bdf55
  9. Nov 02, 2017
  10. Nov 01, 2017
    • Mitch Phillips's avatar
      Parse DWARF information to reduce false positives. · 7db6f7a3
      Mitch Phillips authored
      Summary: Help differentiate code and data by parsing DWARF information. This will reduce false positive rates where data is placed in executable sections and is mistakenly parsed as code, resulting in an inflation in the number of indirect CF instructions (and hence an inflation of the number of unprotected).
      
      Also prints the DWARF line data around the region of each indirect CF instruction.
      
      Reviewers: pcc
      
      Subscribers: probinson, llvm-commits, vlad.tsyrklevich, mgorny, aprantl, kcc
      
      Differential Revision: https://reviews.llvm.org/D38654
      
      llvm-svn: 317050
      7db6f7a3
  11. Oct 25, 2017
    • Mitch Phillips's avatar
      Add FileVerifier::isCFIProtected(). · 5ff01cdc
      Mitch Phillips authored
      Add a CFI protection check that is implemented by building a graph and inspecting the output to deduce if the indirect CF instruction is CFI protected. Also added the output of this instruction to printIndirectInstructions().
      
      Reviewers: vlad.tsyrklevich
      
      Subscribers: llvm-commits, kcc, pcc, mgorny
      
      Differential Revision: https://reviews.llvm.org/D38428
      
      llvm-svn: 316610
      5ff01cdc
  12. Oct 23, 2017
  13. Oct 18, 2017
    • Vlad Tsyrklevich's avatar
      Statically link llvm-cfi-verify's libraries. · 4dc1c973
      Vlad Tsyrklevich authored
      Summary:
      llvm-cfi-verify (D38379) introduced a potential build failure when compiling with `-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON`. Specific versions of cmake seem to treat the `add_subdirectory()` rule differently. It seems as if old versions of cmake BFS these rules, adding them to the fringe for expansion later. Newer versions of cmake seem to immediately execute CMakeFiles that are present in this subdirectory.
      
      If the subdirectory is expanded through the fringe, the globbing resultant from `llvm_add_implicit_projects()` from `cmake/modules/AddLLVM.cmake:1012` means that `tools/llvm-shlib/CMakeFile.txt` gets executed before `tools/llvm-cfi-verify/lib/CMakeFile.txt`. As the latter CMakeFile adds a new library, this expansion order means that the library files required the unit tests in `unittests/tools/llvm-cfi-verify/` are not present in the dynamic library. This causes unit tests to fail as the required functions can't be found.
      
      This change now ensures that the libraries created by `llvm-cfi-verify` are statically linked into the unit tests. As `tools/llvm-cfi-verify/lib` no longer adds anything to `llvm-shlib`, there should be no concern about the order-of-compilation.
      
      Reviewers: skatkov, pcc
      
      Reviewed By: skatkov, pcc
      
      Subscribers: llvm-commits, kcc, pcc, aheejin, vlad.tsyrklevich, mgorny
      
      Differential Revision: https://reviews.llvm.org/D39020
      
      llvm-svn: 316059
      4dc1c973
  14. Oct 12, 2017
  15. Oct 11, 2017
Loading