[sanitizer] Replace a local array with InternalScopedString in MaybeReexec()

`MaybeReexec` contains a 1024-byte long local array, which produces a warning about frame size:

   .../lib/sanitizer_common/sanitizer_mac.cc:548:6: warning: stack frame size of 1132 bytes in function '__sanitizer::MaybeReexec' [-Wframe-larger-than=]

Let's replace it with InternalScopedString.

Differential Revision: http://reviews.llvm.org/D15181

llvm-svn: 254619
This commit is contained in:
Kuba Brecka 2015-12-03 17:05:43 +00:00
parent 3daf7b4743
commit 2e2f84bfee
1 changed files with 4 additions and 4 deletions

View File

@ -566,9 +566,9 @@ void MaybeReexec() {
if (DyldNeedsEnvVariable() && !lib_is_in_env) {
// DYLD_INSERT_LIBRARIES is not set or does not contain the runtime
// library.
char program_name[1024];
uint32_t buf_size = sizeof(program_name);
_NSGetExecutablePath(program_name, &buf_size);
InternalScopedString program_name(1024);
uint32_t buf_size = program_name.size();
_NSGetExecutablePath(program_name.data(), &buf_size);
char *new_env = const_cast<char*>(info.dli_fname);
if (dyld_insert_libraries) {
// Append the runtime dylib name to the existing value of
@ -589,7 +589,7 @@ void MaybeReexec() {
VReport(1, "exec()-ing the program with\n");
VReport(1, "%s=%s\n", kDyldInsertLibraries, new_env);
VReport(1, "to enable wrappers.\n");
execv(program_name, *_NSGetArgv());
execv(program_name.data(), *_NSGetArgv());
// We get here only if execv() failed.
Report("ERROR: The process is launched without DYLD_INSERT_LIBRARIES, "