summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-09-16 22:16:10 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-09-20 12:13:42 +0200
commit8bc7ff600f065106eed3cad5689ad5db6ab68583 (patch)
tree12c328e0b1476c4c2baeec2b7668d73b59f75ebf
parenta049ddfc61e20b19fbb64d59602e25e8ccad140e (diff)
downloadsystemd-8bc7ff600f065106eed3cad5689ad5db6ab68583.tar.gz
nspawn: fix fd leak on failure path
(cherry picked from commit 2fef50cd9eee59cea6145639f6bd464939fac624) (cherry picked from commit f2763ff6cd9385e82171e17ed83a7698c7f561fd)
-rw-r--r--src/nspawn/nspawn.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 164bd826fc..4cbe139ef6 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -2120,7 +2120,7 @@ static int setup_pts(const char *dest) {
}
static int setup_stdio_as_dev_console(void) {
- int terminal;
+ _cleanup_close_ int terminal = -1;
int r;
terminal = open_terminal("/dev/console", O_RDWR);
@@ -2135,6 +2135,7 @@ static int setup_stdio_as_dev_console(void) {
/* invalidates 'terminal' on success and failure */
r = rearrange_stdio(terminal, terminal, terminal);
+ TAKE_FD(terminal);
if (r < 0)
return log_error_errno(r, "Failed to move console to stdin/stdout/stderr: %m");