From f486e262fac6d410611331245961997041a52464 Mon Sep 17 00:00:00 2001 From: Allen Webb Date: Fri, 18 Mar 2022 15:24:57 +0000 Subject: libminijail: Set the controlling tty if appropriate. The session leader needs to set the controlling tty for job control to work. Also, clang-format was applied to libminijail.c. Bug: 224419467 Test: manatee -a shell # check if job control fails Change-Id: Ib935d3dbca384ffb071e902b3aed232334be8318 --- libminijail.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/libminijail.c b/libminijail.c index ea59404..aab1294 100644 --- a/libminijail.c +++ b/libminijail.c @@ -2889,6 +2889,12 @@ static void setup_child_std_fds(struct minijail *j, if (setsid() < 0) { pdie("setsid() failed"); } + + if (isatty(STDIN_FILENO)) { + if (ioctl(STDIN_FILENO, TIOCSCTTY, 0) != 0) { + pwarn("failed to set controlling terminal"); + } + } } } @@ -2943,12 +2949,12 @@ int API minijail_run_env(struct minijail *j, const char *filename, char *const argv[], char *const envp[]) { struct minijail_run_config config = { - .filename = filename, - .elf_fd = -1, - .argv = argv, - .envp = envp, - .use_preload = true, - .exec_in_child = true, + .filename = filename, + .elf_fd = -1, + .argv = argv, + .envp = envp, + .use_preload = true, + .exec_in_child = true, }; return minijail_run_config_internal(j, &config); } -- cgit v1.2.3