]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: when redirecting sshd's log output to a file, undo this
authordjm@openbsd.org <djm@openbsd.org>
Fri, 3 Jul 2020 06:46:41 +0000 (06:46 +0000)
committerDamien Miller <djm@mindrot.org>
Fri, 3 Jul 2020 07:03:54 +0000 (17:03 +1000)
redirection after the session child process is forked(); ok dtucker@

OpenBSD-Commit-ID: 6df86dd653c91f5bc8ac1916e7680d9d24690865

log.c
session.c

diff --git a/log.c b/log.c
index d9c2d136cc689ace671efd669003feac666740ac..6b1a7a31417b5d70c5b800d26d828f05510ea65b 100644 (file)
--- a/log.c
+++ b/log.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: log.c,v 1.51 2018/07/27 12:03:17 markus Exp $ */
+/* $OpenBSD: log.c,v 1.52 2020/07/03 06:46:41 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -370,6 +370,14 @@ log_redirect_stderr_to(const char *logfile)
 {
        int fd;
 
+       if (logfile == NULL) {
+               if (log_stderr_fd != STDERR_FILENO) {
+                       close(log_stderr_fd);
+                       log_stderr_fd = STDERR_FILENO;
+               }
+               return;
+       }
+
        if ((fd = open(logfile, O_WRONLY|O_CREAT|O_APPEND, 0600)) == -1) {
                fprintf(stderr, "Couldn't open logfile %s: %s\n", logfile,
                     strerror(errno));
index f6193b98ebcf2df4b679f35b194fa5ea545f6b88..a37eb4ae2418121ec2993ec8f3179bb2faeb37c1 100644 (file)
--- a/session.c
+++ b/session.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: session.c,v 1.320 2020/06/26 04:45:11 dtucker Exp $ */
+/* $OpenBSD: session.c,v 1.321 2020/07/03 06:46:41 djm Exp $ */
 /*
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
  *                    All rights reserved
@@ -1501,6 +1501,9 @@ child_close_fds(struct ssh *ssh)
         */
        endpwent();
 
+       /* Stop directing logs to a high-numbered fd before we close it */
+       log_redirect_stderr_to(NULL);
+
        /*
         * Close any extra open file descriptors so that we don't have them
         * hanging around in clients.  Note that we want to do this after