aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Hsieh <victorhsieh@google.com>2021-05-01 00:45:04 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-05-01 00:45:04 +0000
commit7b8d84c130572443b035eb47b53149142d915e66 (patch)
tree79741736340546628cd796d40bf3d47c8ab8538b
parent036c252f239ff6320d2189dab55bfa182d60d38a (diff)
parent1403606682541761bc74399e798e912969c7c886 (diff)
downloadminijail-7b8d84c130572443b035eb47b53149142d915e66.tar.gz
Don't log the warning for an expected kill am: 1403606682
Original change: https://android-review.googlesource.com/c/platform/external/minijail/+/1692726 Change-Id: I7fb3b3742d6fa9b7a0668b7556aac53c726b6034
-rw-r--r--libminijail.c35
1 files changed, 21 insertions, 14 deletions
diff --git a/libminijail.c b/libminijail.c
index e0d9d54..b09a05c 100644
--- a/libminijail.c
+++ b/libminijail.c
@@ -3349,18 +3349,7 @@ minijail_run_config_internal(struct minijail *j,
return ret;
}
-int API minijail_kill(struct minijail *j)
-{
- if (j->initpid <= 0)
- return -ECHILD;
-
- if (kill(j->initpid, SIGTERM))
- return -errno;
-
- return minijail_wait(j);
-}
-
-int API minijail_wait(struct minijail *j)
+static int minijail_wait_internal(struct minijail *j, int expected_signal)
{
if (j->initpid <= 0)
return -ECHILD;
@@ -3378,8 +3367,10 @@ int API minijail_wait(struct minijail *j)
int error_status = st;
if (WIFSIGNALED(st)) {
int signum = WTERMSIG(st);
- warn("child process %d received signal %d",
- j->initpid, signum);
+ if (signum != expected_signal) {
+ warn("child process %d received signal %d",
+ j->initpid, signum);
+ }
/*
* We return MINIJAIL_ERR_JAIL if the process received
* SIGSYS, which happens when a syscall is blocked by
@@ -3404,6 +3395,22 @@ int API minijail_wait(struct minijail *j)
return exit_status;
}
+int API minijail_kill(struct minijail *j)
+{
+ if (j->initpid <= 0)
+ return -ECHILD;
+
+ if (kill(j->initpid, SIGTERM))
+ return -errno;
+
+ return minijail_wait_internal(j, SIGTERM);
+}
+
+int API minijail_wait(struct minijail *j)
+{
+ return minijail_wait_internal(j, 0);
+}
+
void API minijail_destroy(struct minijail *j)
{
size_t i;