summaryrefslogtreecommitdiff
path: root/tests/stack_protector_test_helper.cpp
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2023-06-23 00:40:40 -0700
committerLinux Build Service Account <lnxbuild@localhost>2023-06-23 00:40:40 -0700
commit1b298f78b67fad84f00aefec3d8f04a9b6c53ab5 (patch)
treed9006ac00ea95c86be208575ee29d4ea6978abc1 /tests/stack_protector_test_helper.cpp
parent6b3432c3ed7d0221db33011a21ff53aa2ea22da1 (diff)
parentd1d65eae22ae4dbb2c0bfb8427d8223a8e9fc6a7 (diff)
Merge d1d65eae22ae4dbb2c0bfb8427d8223a8e9fc6a7 on remote branch
Change-Id: I097b2175df34867bd7c8281ec8f96ef21588d64d
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;
}