mirror of
https://github.com/google/sandboxed-api.git
synced 2024-03-22 13:11:30 +08:00
Error out if invalid custom forkserver path is specified
PiperOrigin-RevId: 540526350 Change-Id: Id7f4ea9290074c15c700c27c2d252b9f54a282bd
This commit is contained in:
parent
04cb14791e
commit
66aeb6e59d
|
@ -160,17 +160,21 @@ absl::StatusOr<std::unique_ptr<GlobalForkClient>> StartGlobalForkServer() {
|
||||||
|
|
||||||
// Allow passing of a spearate forkserver_bin via flag
|
// Allow passing of a spearate forkserver_bin via flag
|
||||||
int exec_fd = -1;
|
int exec_fd = -1;
|
||||||
if (!absl::GetFlag(FLAGS_sandbox2_forkserver_binary_path).empty()) {
|
std::string bin_path = absl::GetFlag(FLAGS_sandbox2_forkserver_binary_path);
|
||||||
exec_fd = open(absl::GetFlag(FLAGS_sandbox2_forkserver_binary_path).c_str(),
|
if (!bin_path.empty()) {
|
||||||
O_RDONLY);
|
exec_fd = open(bin_path.c_str(), O_RDONLY);
|
||||||
|
if (exec_fd < 0) {
|
||||||
|
return absl::ErrnoToStatus(
|
||||||
|
errno, absl::StrCat("Opening forkserver binary passed via "
|
||||||
|
"--sandbox2_forkserver_binary_path (",
|
||||||
|
bin_path, ")"));
|
||||||
|
}
|
||||||
|
} else if constexpr (sapi::host_os::IsAndroid()) {
|
||||||
|
return absl::FailedPreconditionError(
|
||||||
|
"sandbox2_forkserver_binary_path flag has to be set to the location of "
|
||||||
|
"the forkserver binary on Android");
|
||||||
}
|
}
|
||||||
if (exec_fd < 0) {
|
if (exec_fd < 0) {
|
||||||
// For Android we expect the forkserver_bin in the flag
|
|
||||||
if constexpr (sapi::host_os::IsAndroid()) {
|
|
||||||
return absl::ErrnoToStatus(
|
|
||||||
errno,
|
|
||||||
"Open init binary passed via --sandbox2_forkserver_binary_path");
|
|
||||||
}
|
|
||||||
// Extract the fd when it's owned by EmbedFile
|
// Extract the fd when it's owned by EmbedFile
|
||||||
exec_fd = sapi::EmbedFile::instance()->GetDupFdForFileToc(
|
exec_fd = sapi::EmbedFile::instance()->GetDupFdForFileToc(
|
||||||
forkserver_bin_embed_create());
|
forkserver_bin_embed_create());
|
||||||
|
|
Loading…
Reference in New Issue
Block a user