aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util-linux/switch_root.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/util-linux/switch_root.c b/util-linux/switch_root.c
index 6034485d7..aaee35a3e 100644
--- a/util-linux/switch_root.c
+++ b/util-linux/switch_root.c
@@ -141,10 +141,12 @@ int switch_root_main(int argc UNUSED_PARAM, char **argv)
141 141
142 // If a new console specified, redirect stdin/stdout/stderr to it 142 // If a new console specified, redirect stdin/stdout/stderr to it
143 if (console) { 143 if (console) {
144 close(0); 144 int fd = open_or_warn(console, O_RDWR);
145 xopen(console, O_RDWR); 145 if (fd >= 0) {
146 xdup2(0, 1); 146 xmove_fd(fd, 0);
147 xdup2(0, 2); 147 xdup2(0, 1);
148 xdup2(0, 2);
149 }
148 } 150 }
149 151
150 // Exec real init 152 // Exec real init