aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-10-06 20:27:57 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-10-06 20:27:57 +0000
commitb5a74d5d37f41d9ce4983c15c9c11f691f848850 (patch)
treeec7eaf7308d22f592a0ca98737897d801df40d7b
parente41878709ff813075ac1f80e6e718407a5f618dd (diff)
parentbce2d9e90b4fa86050ca75f2a35fcf01b56a855f (diff)
downloadbionic-android12-tests-release.tar.gz
-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;
}