]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
privsep: Don't limit file writes if logging to a file
authorRoy Marples <roy@marples.name>
Wed, 1 Jul 2020 10:45:06 +0000 (11:45 +0100)
committerRoy Marples <roy@marples.name>
Wed, 1 Jul 2020 10:45:06 +0000 (11:45 +0100)
stderr could be redirected.

While here, there is no longer a need to redirect stderr or stdout
as they already have been in dhcpcd.

src/privsep.c

index 34e00a402c999b2d8457ffb23faa68ee09b9fdbb..65260f2c46ddcc538e5d2fe4166c2c111dc102cc 100644 (file)
@@ -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);