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(&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(&p + 1); + *p = ~*p; }