aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Hsieh <victorhsieh@google.com>2021-05-01 02:10:34 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-05-01 02:10:34 +0000
commitca93c47707bdc677eab56ff1f53d77aad6a64c1d (patch)
tree79741736340546628cd796d40bf3d47c8ab8538b
parentbe130335ae28363412c978f3c4e5b321ba945c80 (diff)
parent2b0562127e7287f76d84dcf7a0866951cc4d2ebc (diff)
downloadminijail-ca93c47707bdc677eab56ff1f53d77aad6a64c1d.tar.gz
Don't log the warning for an expected kill am: 1403606682 am: 7b8d84c130 am: 9f3eb16c0f am: 2b0562127e
Original change: https://android-review.googlesource.com/c/platform/external/minijail/+/1692726 Change-Id: Ic90c15f210ebb08cab1cb265c82652e9cee33eb6
-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;