diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2022-03-09 10:42:20 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-03-14 10:30:58 +0000 |
commit | cfb6eca50319e0eb8de8c996a04feba41aa43b75 (patch) | |
tree | 2245014954190196311a275c50cf149c3b8f8fe3 | |
parent | 78831e7aca3f82a0c64499706c8017c13389efa3 (diff) |
[Backport] sandbox: build if glibc 2.34+ dynamic stack size is enabled
Compilation of sandbox fails when using dynamic stack size in glibc
2.34 or newer. This is because the value is not a literal anymore but
obtained through sysconf.
To avoid this, use memset to put zeros in the buffer.
Pick-to: 87-based 90-based 94-based
Change-Id: Iff7ddca815378ab1de2f3ca2d200d8db75f42dd2
Review-URL: https://chromium-review.googlesource.com/c/chromium/src/+/3436947
Cr-Commit-Position: refs/heads/main@{#967943}
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit b789116ca6111fa26c7a6d6ea22513b95c3573af)
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
-rw-r--r-- | chromium/sandbox/linux/services/credentials.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/chromium/sandbox/linux/services/credentials.cc b/chromium/sandbox/linux/services/credentials.cc index ad0714a7f5e..3dc5457cdd2 100644 --- a/chromium/sandbox/linux/services/credentials.cc +++ b/chromium/sandbox/linux/services/credentials.cc @@ -95,7 +95,10 @@ bool ChrootToSafeEmptyDir() { // attempt this optimization. clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS; - char tls_buf[PTHREAD_STACK_MIN] = {0}; + // PTHREAD_STACK_MIN can be dynamic in glibc2.34+, so it is not possible to + // zeroify tls_buf assigning { 0 } + char tls_buf[PTHREAD_STACK_MIN]; + memset(tls_buf, 0, PTHREAD_STACK_MIN); tls = tls_buf; #endif |