[kernel][x86][kasan] Check out-of-bounds accesses to globals

This CL instruments accesses to global variables in zircon.

The compiler adds a redzone to the right of every global object. Our
instrumentation poisons the redzones and in the steady-state traps on
accesses to the redzones to detect and panic on out of bounds accesses.

To enable this instrumentation, we add all kernel sections that can
have globals to the regions kASAN tracks; we also record every
contiguous region of globals in early boot and register them with
asan (posion their right redzones) in later boot.

Pair-programmed-with: mvanotti@
Bug: 30033 Kernelmode ASAN for Zircon
Change-Id: Iab3227f784fda32f5b8bf2405b304ce18bea432f
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/392703
Commit-Queue: Marco Vanotti <mvanotti@google.com>
Reviewed-by: Roland McGrath <mcgrathr@google.com>
Reviewed-by: Adrian Danis <adanis@google.com>
Testability-Review: Adrian Danis <adanis@google.com>
10 files changed
tree: 104bce6e895987caa1521e1a92074c1e932cb7e6
  1. boards/
  2. build/
  3. bundles/
  4. cts/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .gitattributes
  18. .gitignore
  19. .gn
  20. .style.yapf
  21. AUTHORS
  22. BUILD.gn
  23. CODE_OF_CONDUCT.md
  24. CONTRIBUTING.md
  25. LICENSE
  26. OWNERS
  27. PATENTS
  28. README.md
  29. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.