stack_protector_DeathTest#modify_stack_protector: avoid flake.

I've never been able to repro the flake myself (in hundreds of thousands
of runs), but it's certainly possible that a byte of the cookie is
already zero. So let's invert the byte we plan to corrupt rather than
set it to zero.

Bug: http://b/202948861
Test: treehugger
Change-Id: Iccd552fe302d6c01e376819d23c11a308e03acdb
(cherry picked from commit 23ce50c172)
This commit is contained in:
Elliott Hughes 2022-09-27 22:37:03 +00:00
parent 46871c040d
commit b24c89b4df

View file

@ -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;
}