aboutsummaryrefslogtreecommitdiff
path: root/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-06-01 21:15:18 +0200
committerMartin Liska <mliska@suse.cz>2020-06-02 08:02:07 +0200
commit3c6331c29f1376ed220246e7dead94bc527a9aa9 (patch)
treedf4288713dd999fd2b0783cf0f82a7a127ed5964 /libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
parent2b11374cb8d864dff3792e7c84188ba7e8f136e7 (diff)
downloadgcc-3c6331c29f1376ed220246e7dead94bc527a9aa9.zip
gcc-3c6331c29f1376ed220246e7dead94bc527a9aa9.tar.gz
gcc-3c6331c29f1376ed220246e7dead94bc527a9aa9.tar.bz2
Libsanitizer: merge from master.
Merged from revision b638b63b99d66786cb37336292604a2ae3490cfd. The patch successfully bootstraps on x86_64-linux-gnu and ppc64le-linux-gnu. I also tested ppc64-linux-gnu that exposed: https://reviews.llvm.org/D80864 (which is fixed on master). Abidiff looks happy and I made UBSAN and ASAN bootstrap on x86_64-linux-gnu. I'm planning to do merge from master twice a year, once now and next time short before stage1 closes. I am going to install the patches as merge from master is obvious and I haven't made anything special. libsanitizer/ChangeLog: * MERGE: Merge from master.
Diffstat (limited to 'libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp')
-rw-r--r--libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
index 304b3a0..f920172 100644
--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
+++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
@@ -426,7 +426,8 @@ void AdjustStackSize(void *attr_) {
#endif // !SANITIZER_GO
pid_t StartSubprocess(const char *program, const char *const argv[],
- fd_t stdin_fd, fd_t stdout_fd, fd_t stderr_fd) {
+ const char *const envp[], fd_t stdin_fd, fd_t stdout_fd,
+ fd_t stderr_fd) {
auto file_closer = at_scope_exit([&] {
if (stdin_fd != kInvalidFd) {
internal_close(stdin_fd);
@@ -469,7 +470,8 @@ pid_t StartSubprocess(const char *program, const char *const argv[],
for (int fd = sysconf(_SC_OPEN_MAX); fd > 2; fd--) internal_close(fd);
- execv(program, const_cast<char **>(&argv[0]));
+ internal_execve(program, const_cast<char **>(&argv[0]),
+ const_cast<char *const *>(envp));
internal__exit(1);
}