mirror of
https://github.com/google/sandboxed-api.git
synced 2024-03-22 13:11:30 +08:00
forkserver: Remove order dependent tests
Sending -1 as fd will fail and take forkserver down. This should not happen normally so turned it into a check. PiperOrigin-RevId: 285391908 Change-Id: Idbb05004c36cb0be57be1bd26df1c57cecfb0019
This commit is contained in:
parent
4608a7baea
commit
7125458c5d
|
@ -189,6 +189,7 @@ pid_t ForkClient::SendRequest(const ForkRequest& request, int exec_fd,
|
||||||
SAPI_RAW_LOG(ERROR, "Sending PB to the ForkServer failed");
|
SAPI_RAW_LOG(ERROR, "Sending PB to the ForkServer failed");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
SAPI_RAW_CHECK(comms_fd != -1, "comms_fd was not properly set up");
|
||||||
if (!comms_->SendFD(comms_fd)) {
|
if (!comms_->SendFD(comms_fd)) {
|
||||||
SAPI_RAW_LOG(ERROR, "Sending Comms FD (%d) to the ForkServer failed",
|
SAPI_RAW_LOG(ERROR, "Sending Comms FD (%d) to the ForkServer failed",
|
||||||
comms_fd);
|
comms_fd);
|
||||||
|
@ -196,6 +197,7 @@ pid_t ForkClient::SendRequest(const ForkRequest& request, int exec_fd,
|
||||||
}
|
}
|
||||||
if (request.mode() == FORKSERVER_FORK_EXECVE ||
|
if (request.mode() == FORKSERVER_FORK_EXECVE ||
|
||||||
request.mode() == FORKSERVER_FORK_EXECVE_SANDBOX) {
|
request.mode() == FORKSERVER_FORK_EXECVE_SANDBOX) {
|
||||||
|
SAPI_RAW_CHECK(exec_fd != -1, "exec_fd cannot be -1 in execve mode");
|
||||||
if (!comms_->SendFD(exec_fd)) {
|
if (!comms_->SendFD(exec_fd)) {
|
||||||
SAPI_RAW_LOG(ERROR, "Sending Exec FD (%d) to the ForkServer failed",
|
SAPI_RAW_LOG(ERROR, "Sending Exec FD (%d) to the ForkServer failed",
|
||||||
exec_fd);
|
exec_fd);
|
||||||
|
@ -204,6 +206,7 @@ pid_t ForkClient::SendRequest(const ForkRequest& request, int exec_fd,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (request.mode() == FORKSERVER_FORK_JOIN_SANDBOX_UNWIND) {
|
if (request.mode() == FORKSERVER_FORK_JOIN_SANDBOX_UNWIND) {
|
||||||
|
SAPI_RAW_CHECK(user_ns_fd != -1, "user_ns_fd cannot be -1 in unwind mode");
|
||||||
if (!comms_->SendFD(user_ns_fd)) {
|
if (!comms_->SendFD(user_ns_fd)) {
|
||||||
SAPI_RAW_LOG(ERROR, "Sending user ns FD (%d) to the ForkServer failed",
|
SAPI_RAW_LOG(ERROR, "Sending user ns FD (%d) to the ForkServer failed",
|
||||||
user_ns_fd);
|
user_ns_fd);
|
||||||
|
|
|
@ -104,19 +104,6 @@ TEST(ForkserverTest, ForkExecveSandboxWithoutPolicy) {
|
||||||
// Run a test binary through the FORKSERVER_FORK_EXECVE_SANDBOX request.
|
// Run a test binary through the FORKSERVER_FORK_EXECVE_SANDBOX request.
|
||||||
int exec_fd = GetMinimalTestcaseFd();
|
int exec_fd = GetMinimalTestcaseFd();
|
||||||
PCHECK(exec_fd != -1) << "Could not open test binary";
|
PCHECK(exec_fd != -1) << "Could not open test binary";
|
||||||
ASSERT_NE(TestSingleRequest(FORKSERVER_FORK_EXECVE_SANDBOX, exec_fd, -1), -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(ForkserverTest, ForkExecveRequiresExecFD) {
|
|
||||||
// This test should generate some warnings:
|
|
||||||
// (Sending Exec FD (-1) to the ForkServer failed).
|
|
||||||
ASSERT_EQ(TestSingleRequest(FORKSERVER_FORK_EXECVE, -1, -1), -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(ForkserverTest, ForkExecveSandboxRequiresExecFD) {
|
|
||||||
// This test should generate some warnings:
|
|
||||||
// (Sending Exec FD (-1) to the ForkServer failed).
|
|
||||||
ASSERT_EQ(TestSingleRequest(FORKSERVER_FORK_EXECVE_SANDBOX, -1, -1), -1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace sandbox2
|
} // namespace sandbox2
|
||||||
|
|
Loading…
Reference in New Issue
Block a user