[CRIU] [PATCH] util: cr_system_userns() should not affect log_fd
Andrey Vagin
avagin at openvz.org
Fri Apr 22 09:48:32 PDT 2016
From: Andrew Vagin <avagin at virtuozzo.com>
Fixes: 1dc2f87b33ce ("util: shutdown log in cr_system_userns if error fd is negative")
Cc: Stanislav Kinsburskiy <skinsbursky at virtuozzo.com>
Signed-off-by: Andrew Vagin <avagin at virtuozzo.com>
---
criu/util.c | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/criu/util.c b/criu/util.c
index dae6031..e8ebe61 100644
--- a/criu/util.c
+++ b/criu/util.c
@@ -609,8 +609,6 @@ int cr_system_userns(int in, int out, int err, char *cmd,
pr_perror("fork() failed");
goto out;
} else if (pid == 0) {
- bool stop_log_fd = false;
-
if (userns_pid > 0) {
if (switch_ns(userns_pid, &user_ns_desc, NULL))
goto out_chld;
@@ -621,11 +619,9 @@ int cr_system_userns(int in, int out, int err, char *cmd,
}
if (out < 0)
- out = log_get_fd();
- if (err < 0) {
- err = log_get_fd();
- stop_log_fd = true;
- }
+ out = DUP_SAFE(log_get_fd(), out_chld);
+ if (err < 0)
+ err = DUP_SAFE(log_get_fd(), out_chld);
/*
* out, err, in should be a separate fds,
@@ -641,9 +637,6 @@ int cr_system_userns(int in, int out, int err, char *cmd,
move_img_fd(&err, STDIN_FILENO))
goto out_chld;
- if (stop_log_fd)
- log_fini();
-
if (in < 0) {
close(STDIN_FILENO);
} else {
--
2.5.5
More information about the CRIU
mailing list