--- init.c-orig 2014-02-10 20:55:23.942043683 +0100 +++ init.c 2014-02-10 20:56:02.526044600 +0100 @@ -1025,6 +1025,7 @@ char *args[16]; /* Argv array */ char buf[136]; /* Line buffer */ int f, st; /* Scratch variables */ + int ftty; /* Handler for tty controlling */ char *ptr; /* Ditto */ time_t t; /* System time */ int oldAlarm; /* Previous alarm value */ @@ -1154,11 +1155,11 @@ * of the console after exit of the leader. */ setsid(); - if ((f = console_open(O_RDWR|O_NOCTTY)) >= 0) { + if ((ftty = console_open(O_RDWR|O_NOCTTY)) >= 0) { /* Take over controlling tty by force */ - (void)ioctl(f, TIOCSCTTY, 1); - dup(f); - dup(f); + (void)ioctl(ftty, TIOCSCTTY, 1); + dup(ftty); + dup(ftty); } /* @@ -1192,7 +1193,7 @@ * Small optimization. See if stealing * controlling tty back is needed. */ - pgrp = tcgetpgrp(f); + pgrp = tcgetpgrp(ftty); if (pgrp != getpid()) exit(0); @@ -1207,7 +1208,7 @@ } if (pid == 0) { setsid(); - (void)ioctl(f, TIOCSCTTY, 1); + (void)ioctl(ftty, TIOCSCTTY, 1); exit(0); } while((rc = waitpid(pid, &st, 0)) != pid)