Skip to content
Snippets Groups Projects
  1. Nov 29, 2021
  2. Oct 12, 2021
  3. Oct 05, 2021
  4. Sep 02, 2021
  5. Jul 23, 2021
  6. Jul 21, 2021
  7. Jul 14, 2021
  8. Jun 25, 2021
  9. Jun 21, 2021
  10. Jun 19, 2021
  11. May 26, 2021
  12. May 02, 2021
  13. Mar 17, 2021
  14. Feb 18, 2021
  15. Jan 02, 2021
    • Daniele Buono's avatar
      cfi: Initial support for cfi-icall in QEMU · c905a368
      Daniele Buono authored
      
      LLVM/Clang, supports runtime checks for forward-edge Control-Flow
      Integrity (CFI).
      
      CFI on indirect function calls (cfi-icall) ensures that, in indirect
      function calls, the function called is of the right signature for the
      pointer type defined at compile time.
      
      For this check to work, the code must always respect the function
      signature when using function pointer, the function must be defined
      at compile time, and be compiled with link-time optimization.
      
      This rules out, for example, shared libraries that are dynamically loaded
      (given that functions are not known at compile time), and code that is
      dynamically generated at run-time.
      
      This patch:
      
      1) Introduces the CONFIG_CFI flag to support cfi in QEMU
      
      2) Introduces a decorator to allow the definition of "sensitive"
      functions, where a non-instrumented function may be called at runtime
      through a pointer. The decorator will take care of disabling cfi-icall
      checks on such functions, when cfi is enabled.
      
      3) Marks functions currently in QEMU that exhibit such behavior,
      in particular:
      - The function in TCG that calls pre-compiled TBs
      - The function in TCI that interprets instructions
      - Functions in the plugin infrastructures that jump to callbacks
      - Functions in util that directly call a signal handler
      
      Signed-off-by: default avatarDaniele Buono <dbuono@linux.vnet.ibm.com>
      Acked-by: default avatarAlex Bennée <alex.bennee@linaro.org>
      Message-Id: <20201204230615.2392-3-dbuono@linux.vnet.ibm.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c905a368
  16. Dec 15, 2020
  17. Oct 13, 2020
  18. Oct 09, 2020
  19. Aug 21, 2020
  20. May 15, 2020
  21. Mar 17, 2020
  22. Feb 25, 2020
  23. Jan 16, 2020
  24. Nov 12, 2019
  25. Oct 28, 2019
Loading