Merge "Fix two problems in the ExecuteBinary function."
This commit is contained in:
@@ -72,7 +72,8 @@ std::unique_ptr<ProcResult> ExecuteBinary(const std::vector<std::string>& argv)
|
||||
argv0[i] = argv[i].c_str();
|
||||
}
|
||||
argv0[argv.size()] = nullptr;
|
||||
switch (fork()) {
|
||||
int pid = fork();
|
||||
switch (pid) {
|
||||
case -1: // error
|
||||
free(argv0);
|
||||
PLOG(ERROR) << "fork";
|
||||
@@ -104,8 +105,10 @@ std::unique_ptr<ProcResult> ExecuteBinary(const std::vector<std::string>& argv)
|
||||
close(stdout[1]);
|
||||
close(stderr[1]);
|
||||
int status;
|
||||
wait(&status);
|
||||
waitpid(pid, &status, 0);
|
||||
if (!WIFEXITED(status)) {
|
||||
close(stdout[0]);
|
||||
close(stderr[0]);
|
||||
return nullptr;
|
||||
}
|
||||
std::unique_ptr<ProcResult> result(new ProcResult());
|
||||
|
||||
Reference in New Issue
Block a user