]> git.feebdaed.xyz Git - 0xmirror/openssh-portable.git/commitdiff
upstream: don't strnvis() log messages that are going to be logged
authordjm@openbsd.org <djm@openbsd.org>
Mon, 17 Nov 2025 05:24:42 +0000 (05:24 +0000)
committerDamien Miller <djm@mindrot.org>
Tue, 18 Nov 2025 00:28:42 +0000 (11:28 +1100)
by sshd-auth via its parent sshd-session process, as the parent will also run
them though strnvis().

Prevents double-escaping of non-printing characters in some log
messages. bz3896 ok dtucker@

OpenBSD-Commit-ID: d78faad96a98af5269d66ddceee553cf7d396dfe

log.c

diff --git a/log.c b/log.c
index 5969c4a16392fed918c67359dc2892952d6a8eae..679c243563977cb09a9a0c37a652d19755f24cd8 100644 (file)
--- a/log.c
+++ b/log.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: log.c,v 1.65 2025/09/02 09:34:48 djm Exp $ */
+/* $OpenBSD: log.c,v 1.66 2025/11/17 05:24:42 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -403,7 +403,8 @@ do_log(LogLevel level, int force, const char *suffix, const char *fmt,
                /* Avoid recursion */
                tmp_handler = log_handler;
                log_handler = NULL;
-               tmp_handler(level, force, fmtbuf, log_handler_ctx);
+               /* Note: this sends the raw (i.e. no strnvis) log message */
+               tmp_handler(level, force, msgbuf, log_handler_ctx);
                log_handler = tmp_handler;
        } else if (log_on_stderr) {
                snprintf(msgbuf, sizeof msgbuf, "%s%s%.*s\r\n",