diff options
author | Victor Hsieh <victorhsieh@google.com> | 2021-05-01 00:45:04 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-05-01 00:45:04 +0000 |
commit | 7b8d84c130572443b035eb47b53149142d915e66 (patch) | |
tree | 79741736340546628cd796d40bf3d47c8ab8538b | |
parent | 036c252f239ff6320d2189dab55bfa182d60d38a (diff) | |
parent | 1403606682541761bc74399e798e912969c7c886 (diff) | |
download | minijail-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.c | 35 |
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; |