commit | a51c6f07a896f102930f6f0b60b87036a7bbd6c6 | [log] [tgz] |
---|---|---|
author | David Brazdil <dbrazdil@google.com> | Wed Oct 12 09:51:48 2022 +0000 |
committer | David Brazdil <dbrazdil@google.com> | Wed Oct 12 11:36:58 2022 +0000 |
tree | 351e78d8201c91681f4ea1b12c1b5e5a1a864bcf | |
parent | 8b38f3a7cb0c03005b5a05624f7f54e73d9b6ee2 [diff] |
vmbase: Support LLVM and Bionic stack guard C code compiled with the Android toolchain has stack guard checks enabled. So as to avoid having to recompile every target with -fno-stack-guard, instead add the expected symbols to vmbase. This means we need __stack_chk_guard variable containing the canary (used by all libc implementations [1]) and a thread-local storage containing another copy of the canary at offset 40 (Bionic only [2]). If the instrumentation detects an error, it calls __stack_chk_fail. Provide an implementation that simply panics. [1] bionic/tests/stack_protector_test.cpp [2] https://reviews.llvm.org/D18632 Bug: 237372981 Test: atest vmbase_example.integration_test Change-Id: I00de7c75aef6a57a73667df6983a12b01fbe9e51
This repository contains userspace services related to running virtual machines on Android, especially protected virtual machines. See the getting started documentation and Microdroid README for more information.