+ if (fd_errfromchild) {
+ if (fd_errfromchild == fd_fromchild) {
+ errfromchild[0] = fromchild[0];
+ errfromchild[1] = fromchild[1];
+ } else {
+ if (pipe(errfromchild) != 0)
+ goto close_fromchild_fail;
+ }
+ } else {
+ errfromchild[1] = open("/dev/null", O_WRONLY);
+ if (errfromchild[1] < 0)
+ goto close_fromchild_fail;
+ }
+