summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJo-Philipp Wich2016-05-17 15:00:46 +0000
committerJohn Crispin2016-05-16 19:00:30 +0000
commit38dd221a41ca93155b0427be4f5d536173dbd111 (patch)
treea96161d45598116c3581afea377fc9277268701a
parent037aa8f9c15276499760e7d57083fd3df512c901 (diff)
downloadprocd-38dd221a41ca93155b0427be4f5d536173dbd111.tar.gz
inittab: use patch_stdio() for stdio redirection
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--inittab.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/inittab.c b/inittab.c
index f8f0218..622601a 100644
--- a/inittab.c
+++ b/inittab.c
@@ -93,22 +93,14 @@ static int dev_exist(const char *dev)
static void fork_worker(struct init_action *a)
{
- int fd;
pid_t p;
a->proc.pid = fork();
if (!a->proc.pid) {
p = setsid();
- fd = dev_open(a->id);
- if (fd != -1)
- {
- dup2(fd, STDIN_FILENO);
- dup2(fd, STDOUT_FILENO);
- dup2(fd, STDERR_FILENO);
- if (fd > STDERR_FILENO)
- close(fd);
- }
+ if (patch_stdio(a->id))
+ ERROR("Failed to setup i/o redirection\n");
ioctl(STDIN_FILENO, TIOCSCTTY, 1);
tcsetpgrp(STDIN_FILENO, p);