Check exit code from dup() in spawn() and log error if it fail.

Patch from Michał Kulling.
This commit is contained in:
Petter Reinholdtsen 2014-02-10 22:47:27 +00:00
parent d53cccb542
commit ca4561271e
2 changed files with 20 additions and 4 deletions

View File

@ -89,6 +89,8 @@ sysvinit (2.89) UNRELEASED; urgency=low
define INIT_FIFO. define INIT_FIFO.
* Use narrowly scoped file descriptor for handling opened TTY in * Use narrowly scoped file descriptor for handling opened TTY in
spawn(). Patch from Michał Kulling. spawn(). Patch from Michał Kulling.
* Check exit code from dup() in spawn() and log error if it fail.
Patch from Michał Kulling.
-- Petter Reinholdtsen <pere@hungry.com> Sun Apr 11 11:28:55 CEST 2010 -- Petter Reinholdtsen <pere@hungry.com> Sun Apr 11 11:28:55 CEST 2010

View File

@ -1111,8 +1111,15 @@ pid_t spawn(CHILD *ch, int *res)
if ((ftty = console_open(O_RDWR|O_NOCTTY)) >= 0) { if ((ftty = console_open(O_RDWR|O_NOCTTY)) >= 0) {
/* Take over controlling tty by force */ /* Take over controlling tty by force */
(void)ioctl(ftty, TIOCSCTTY, 1); (void)ioctl(ftty, TIOCSCTTY, 1);
dup(ftty);
dup(ftty); if(dup(ftty) < 0){
initlog(L_VB, "cannot duplicate console fd");
}
if(dup(ftty) < 0){
initlog(L_VB, "cannot duplicate console fd");
}
} }
/* /*
@ -1181,8 +1188,15 @@ pid_t spawn(CHILD *ch, int *res)
strerror(errno)); strerror(errno));
fd = open("/dev/null", O_RDWR); fd = open("/dev/null", O_RDWR);
} }
dup(fd);
dup(fd); if(dup(fd) < 0) {
initlog(L_VB, "cannot duplicate /dev/null fd");
}
if(dup(fd) < 0) {
initlog(L_VB, "cannot duplicate /dev/null fd");
}
} }
/* /*