On Fri, Jun 03, 2022 at 11:26:58AM -0600, Theo de Raadt wrote:
> If we do this, I think we should document it somehow that the payload is
> massaged.

This has been in snapshots for 10 days.  The only fallout I see, is
that regress has to be adapted.

ok?

bluhm

Index: usr.sbin/syslogd/syslogd.8
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/syslogd/syslogd.8,v
retrieving revision 1.60
diff -u -p -r1.60 syslogd.8
--- usr.sbin/syslogd/syslogd.8  27 Sep 2018 08:33:25 -0000      1.60
+++ usr.sbin/syslogd/syslogd.8  16 Jun 2022 14:56:06 -0000
@@ -227,7 +227,8 @@ The message sent to
 should consist of a single line.
 Embedded new line characters are converted to spaces;
 binary data is encoded by
-.Xr vis 3 .
+.Xr vis 3 ,
+but no backslash is inserted.
 The message can contain a priority code, which should be a preceding
 decimal number in angle braces, for example,
 .Dq <5> .
Index: usr.sbin/syslogd/syslogd.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/syslogd/syslogd.c,v
retrieving revision 1.274
diff -u -p -r1.274 syslogd.c
--- usr.sbin/syslogd/syslogd.c  4 May 2022 14:47:46 -0000       1.274
+++ usr.sbin/syslogd/syslogd.c  16 Jun 2022 14:49:04 -0000
@@ -1570,7 +1570,7 @@ printline(char *hname, char *msgstr)
                if (*p == '\n')
                        *q++ = ' ';
                else
-                       q = vis(q, *p, 0, 0);
+                       q = vis(q, *p, VIS_NOSLASH, 0);
        }
        line[LOG_MAXLINE] = *q = '\0';
 
@@ -1626,7 +1626,7 @@ printsys(char *msgstr)
                q = lp;
                while (*p && (c = *p++) != '\n' &&
                    q < &msg.m_msg[sizeof(msg.m_msg) - 4])
-                       q = vis(q, c, 0, 0);
+                       q = vis(q, c, VIS_NOSLASH, 0);
 
                logmsg(&msg, flags, LocalHostName);
        }
Index: regress/usr.sbin/syslogd/args-client-tcp-nontransp.pl
===================================================================
RCS file: 
/data/mirror/openbsd/cvs/src/regress/usr.sbin/syslogd/args-client-tcp-nontransp.pl,v
retrieving revision 1.2
diff -u -p -r1.2 args-client-tcp-nontransp.pl
--- regress/usr.sbin/syslogd/args-client-tcp-nontransp.pl       1 Aug 2015 
14:55:58 -0000       1.2
+++ regress/usr.sbin/syslogd/args-client-tcp-nontransp.pl       16 Jun 2022 
14:32:23 -0000
@@ -31,7 +31,7 @@ our %args = (
            qr/localhost de$/ => 1,
            qr/localhost fg$/ => 1,  # NUL terminates message
            qr/localhost hi $/ => 1,
-           qr/localhost jk\\\^G$/ => 1,  # bell character visual
+           qr/localhost jk\^G$/ => 1,  # bell character visual
            qr/localhost l$/ => 1,
            qr/localhost m$/ => 1,
            qr/localhost n$/ => 1,  # leading spaces are striped
Index: regress/usr.sbin/syslogd/args-length-vis.pl
===================================================================
RCS file: 
/data/mirror/openbsd/cvs/src/regress/usr.sbin/syslogd/args-length-vis.pl,v
retrieving revision 1.4
diff -u -p -r1.4 args-length-vis.pl
--- regress/usr.sbin/syslogd/args-length-vis.pl 15 Jun 2015 21:44:57 -0000      
1.4
+++ regress/usr.sbin/syslogd/args-length-vis.pl 16 Jun 2022 14:43:58 -0000
@@ -28,17 +28,16 @@ our %args = (
        # Jan 31 00:12:39 localhost 0123456789ABC...567
        loggrep => {
            get_charlog() => 11,
-           qr/^.{25} .{8182}foo\\M\^\@$/ => 1,
-           qr/^.{25} .{8183}foo\\M\^\@$/ => 1,
-           qr/^.{25} .{8184}foo\\M\^\@$/ => 1,
-           qr/^.{25} .{8185}foo\\M\^\@$/ => 1,
-           qr/^.{25} .{8186}foo\\M\^$/ => 1,
-           qr/^.{25} .{8187}foo\\M$/ => 1,
-           qr/^.{25} .{8188}foo\\$/ => 1,
+           qr/^.{25} .{8183}fooM\^\@$/ => 1,
+           qr/^.{25} .{8184}fooM\^\@$/ => 1,
+           qr/^.{25} .{8185}fooM\^\@$/ => 1,
+           qr/^.{25} .{8186}fooM\^\@$/ => 1,
+           qr/^.{25} .{8187}fooM\^$/ => 1,
+           qr/^.{25} .{8188}fooM$/ => 1,
            qr/^.{25} .{8189}foo$/ => 1,
            qr/^.{25} .{8190}fo$/ => 1,
            qr/^.{25} .{8191}f$/ => 1,
-           qr/^.{25} .{8192}$/ => 8,
+           qr/^.{25} .{8192}$/ => 7,
        },
     },
 );

Reply via email to