From 1403606682541761bc74399e798e912969c7c886 Mon Sep 17 00:00:00 2001 From: Victor Hsieh Date: Fri, 30 Apr 2021 15:40:36 -0700 Subject: Don't log the warning for an expected kill This is just to remove the log spam on the intentional kill like: libminijail[4120]: child process 4125 received signal 15 Bug: 171316742 Test: kill the jail with API, does not see warning Test: kill -9 from shell, still see the warning Change-Id: I5e9cb5637a539ce9a4cf3aa1d6ffd8750b46f881 --- libminijail.c | 35 +++++++++++++++++++++-------------- 1 file 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; -- cgit v1.2.3