Merge "Enable the scudo native allocator."
diff --git a/libc/SECCOMP_WHITELIST_COMMON.TXT b/libc/SECCOMP_WHITELIST_COMMON.TXT
index 58b2326..c55d875 100644
--- a/libc/SECCOMP_WHITELIST_COMMON.TXT
+++ b/libc/SECCOMP_WHITELIST_COMMON.TXT
@@ -99,3 +99,5 @@
 int rt_sigtimedwait_time64(const sigset64_t*, siginfo_t*, const timespec64*, size_t) lp32
 int futex_time64(int*, int, int, const timespec64*, int*, int) lp32
 int sched_rr_get_interval_time64(pid_t, timespec64*) lp32
+# Since Linux 5.3, not in glibc.
+int pidfd_open(pid_t pid, unsigned int flags) all
diff --git a/tests/stack_protector_test_helper.cpp b/tests/stack_protector_test_helper.cpp
index 2db4ef1..fd90b93 100644
--- a/tests/stack_protector_test_helper.cpp
+++ b/tests/stack_protector_test_helper.cpp
@@ -16,11 +16,10 @@
 
 // Deliberately overwrite the stack canary.
 __attribute__((noinline)) void modify_stack_protector_test() {
-  char buf[128];
   // 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 = buf;
-  int size = static_cast<int>(sizeof(buf) + sizeof(void*));
-  while ((p - buf) < size) *p++ = '\0';
+  volatile char* p;
+  p = reinterpret_cast<volatile char*>(&p + 1);
+  *p = '\0';
 }