From: Roy Marples Date: Wed, 1 Jul 2020 10:45:06 +0000 (+0100) Subject: privsep: Don't limit file writes if logging to a file X-Git-Tag: v9.1.3~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b724a4592025c947edab5c609a87f54a66991ac;p=thirdparty%2Fdhcpcd.git privsep: Don't limit file writes if logging to a file stderr could be redirected. While here, there is no longer a need to redirect stderr or stdout as they already have been in dhcpcd. --- diff --git a/src/privsep.c b/src/privsep.c index 34e00a40..65260f2c 100644 --- a/src/privsep.c +++ b/src/privsep.c @@ -160,8 +160,9 @@ ps_dropprivs(struct dhcpcd_ctx *ctx) } /* Prohibit writing to files. - * Obviously this won't work if we are using a logfile. */ - if (ctx->logfile == NULL) { + * Obviously this won't work if we are using a logfile + * or redirecting stderr to a file. */ + if (ctx->logfile == NULL && isatty(loggeterrfd())) { if (setrlimit(RLIMIT_FSIZE, &rzero) == -1) logerr("setrlimit RLIMIT_FSIZE"); } @@ -365,14 +366,6 @@ ps_dostart(struct dhcpcd_ctx *ctx, if (callback(recv_ctx) == -1) goto errexit; - if (!(ctx->options & DHCPCD_DEBUG) && - (!(ctx->options & DHCPCD_TEST) || loggetopts() & LOGERR_QUIET)) - { - if (freopen(_PATH_DEVNULL, "w", stdout) == NULL || - freopen(_PATH_DEVNULL, "w", stderr) == NULL) - logerr("%s: freopen", __func__); - } - if (flags & PSF_DROPPRIVS) ps_dropprivs(ctx);