From: Timo Sirainen Date: Wed, 16 Nov 2016 09:17:27 +0000 (+0200) Subject: lib-master: Revert redundant stdin/stdout/stderr fd checks X-Git-Tag: 2.2.27~154 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2b3d98d3fa9c76cacab66486c0ba2e5134f6da32;p=thirdparty%2Fdovecot%2Fcore.git lib-master: Revert redundant stdin/stdout/stderr fd checks This is now done by lib_init() in a bit nicer way. Reverts 08923d2c956ece3dc604d5842ba152c2bdb11fb9 --- diff --git a/src/lib-master/master-service.c b/src/lib-master/master-service.c index fb01df6332..2a00c35a4c 100644 --- a/src/lib-master/master-service.c +++ b/src/lib-master/master-service.c @@ -20,7 +20,6 @@ #include "master-service-settings.h" #include -#include #include #include @@ -167,28 +166,6 @@ master_service_init(const char *name, enum master_service_flags flags, fd_debug_verify_leaks(MASTER_LISTEN_FD_FIRST + count, 1024); } #endif - /* Make sure stdin, stdout and stderr fds exist. We especially rely on - stderr being available and a lot of code doesn't like fd being 0. - We'll open /dev/null as write-only also for stdin, since if any - reads are attempted from it we'll want them to fail. */ - for (int fd = 0; fd <= 2; fd++) { - struct stat st; - - if (fstat(fd, &st) < 0 && errno == EBADF) { - int null_fd = open("/dev/null", O_WRONLY); - if (null_fd == -1) - i_fatal("Can't open /dev/null: %m"); - else if (null_fd != fd) { - /* we don't really expect this to happen. - POSIX guarantees that open() returns the - lowest numbered fd. So this would only mean - that fstat() returned EBADF for a fd that - actually existed. */ - if (close(null_fd) < 0) - i_error("close(/dev/null) failed: %m"); - } - } - } if ((flags & MASTER_SERVICE_FLAG_STANDALONE) == 0) { /* make sure we can dump core, at least until privileges are dropped. (i'm not really sure why this