Skip to content

Commit bd25e64

Browse files
author
Anders Johnsen
committed
Revert execvpe on Mac and fix usage of strerror_r.
BUG= [email protected] Review URL: https://codereview.chromium.org//1174903002.
1 parent bbdc57e commit bd25e64

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

runtime/bin/process_macos.cc

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
#include "platform/signal_blocker.h"
2626

2727

28+
extern char** environ;
29+
30+
2831
namespace dart {
2932
namespace bin {
3033

@@ -449,14 +452,12 @@ class ProcessStarter {
449452
}
450453

451454
if (program_environment_ != NULL) {
452-
VOID_TEMP_FAILURE_RETRY(
453-
execvpe(path_, const_cast<char* const*>(program_arguments_),
454-
program_environment_));
455-
} else {
456-
VOID_TEMP_FAILURE_RETRY(
457-
execvp(path_, const_cast<char* const*>(program_arguments_)));
455+
environ = program_environment_;
458456
}
459457

458+
VOID_TEMP_FAILURE_RETRY(
459+
execvp(path_, const_cast<char* const*>(program_arguments_)));
460+
460461
ReportChildError();
461462
}
462463

@@ -682,14 +683,8 @@ class ProcessStarter {
682683
void SetOSErrorMessage(int child_errno) {
683684
const int kMaxMessageSize = 256;
684685
char* message = static_cast<char*>(calloc(kMaxMessageSize, 0));
685-
char* os_error_message = strerror_r(
686-
child_errno, message, kMaxMessageSize - 1);
687-
if (message == os_error_message) {
688-
*os_error_message_ = message;
689-
} else {
690-
free(message);
691-
*os_error_message_ = strdup(os_error_message);
692-
}
686+
strerror_r(child_errno, message, kMaxMessageSize - 1);
687+
*os_error_message_ = message;
693688
}
694689

695690

0 commit comments

Comments
 (0)