$NetBSD: patch-check-dup-return-value,v 1.1 2020/04/17 11:28:02 tm Exp $ Check dup() return value. Switched to dup2(), which combines the close() call. Richard Laager https://sourceforge.net/p/squirrelmail/mailman/message/35526927/ --- src/main.c.orig +++ src/main.c @@ -998,6 +998,7 @@ FILE* fp=NULL; pid_t pid; /* used just for a fork call */ int i; + int j; /* detach from our parent if necessary */ // NOTE: When started under systemd, the parent PID is already 1, so @@ -1059,9 +1060,15 @@ strerror(errno)); exit( 1 ); } - close(2); dup(i); - close(1); dup(i); - close(0); dup(i); + for(j=0; j <= 2; j++) + { + if (dup2(i, j) < 0) + { + syslog(LOG_ERR, "%s: dup2() failed: %s", fn, + strerror(errno)); + exit( 1 ); + } + } close(i); } else