summaryrefslogtreecommitdiff
path: root/tests/stack_protector_test_helper.cpp
diff options
context:
space:
mode:
authorMatt Lee <matthewhlee@google.com>2023-06-09 14:22:55 -0700
committerMatt Lee <matthewhlee@google.com>2023-06-09 14:22:55 -0700
commita45a05c360e8fb2fa264249d6d958de004fb7fe5 (patch)
treed9006ac00ea95c86be208575ee29d4ea6978abc1 /tests/stack_protector_test_helper.cpp
parentd73ea46eea83bb4d41237e58a365ad7e9f4ca0ea (diff)
parent161b9a0d219768d212939164ca4dfff2186c5522 (diff)
Merge t-qpr-2023-06
Change-Id: I94905dcb1f131198c2337c9db722af69b0fe268f
Diffstat (limited to 'tests/stack_protector_test_helper.cpp')
-rw-r--r--tests/stack_protector_test_helper.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/tests/stack_protector_test_helper.cpp b/tests/stack_protector_test_helper.cpp
index fd90b939b..eddd94074 100644
--- a/tests/stack_protector_test_helper.cpp
+++ b/tests/stack_protector_test_helper.cpp
@@ -19,7 +19,8 @@ __attribute__((noinline)) void modify_stack_protector_test() {
// We can't use memset here because it's fortified, and we want to test
// the line of defense *after* that.
// Without volatile, the generic x86/x86-64 targets don't write to the stack.
- volatile char* p;
- p = reinterpret_cast<volatile char*>(&p + 1);
- *p = '\0';
+ // We can't make a constant change, since the existing byte might already have
+ // had that value.
+ volatile char* p = reinterpret_cast<volatile char*>(&p + 1);
+ *p = ~*p;
}