Bug#1024977: mmutf8fix does not fix omusrmsg

2024-02-27 Thread Michael Biebl

Control: tags -1 + upstream

On Mon, 28 Nov 2022 14:33:04 +1100 "Trent W. Buck"  
wrote:

Package: rsyslog
Version: 8.2102.0-2+deb11u1
Severity: minor

Using the attached rsyslog.conf, with this test log:

/usr/bin/printf 'TEST BYTES 
\xc3\xb1\xc3\x28\xa0\xa1\xe2\x82\xa1\xe2\x28\xa1\xe2\x82\x28\xf0\x90\x8c\xbc\xf0\x28\x8c\xbc\xf0\x90\x28\xbc\xf0\x28\x8c\x28\xf8\xa1\xa1\xa1\xa1\xfc\xa1\xa1\xa1\xa1\xa1'
 | logger -p auth.0 -t invalid-utf8-test

...I find that mmutf8fix has fixed auth.log, but not the emergency
event printed to logged-in terminals.

I *guess* this is because omusrmsg uses "properties" instead of "the message"?

Note that once it has been called, it actually modifies the message.
The original messsage is then no longer available.
However, this DOES NOT CHANGE ANY PROPERTIES set, used or extracted before 
the modification is done.


https://rsyslog.readthedocs.io/en/latest/configuration/modules/mmutf8fix.html


This issue doesn't really bother me, but
it would be nice if it was explicitly mentioned in the documentation, e.g.

For example, omusrmsg will not be affected, because
it uses properties (ignored by mmutf8fix) and ignores the message (fixed by 
mmutf8fix).




As the Debian package does not ship any patches in that regard, please 
consider filing this directly upstream at

https://github.com/rsyslog/rsyslog/issues/
or
https://github.com/rsyslog/rsyslog-doc/issues/ if you think this is a 
documentation issue.


OpenPGP_signature.asc
Description: OpenPGP digital signature


Bug#1024977: mmutf8fix does not fix omusrmsg

2022-11-27 Thread Trent W. Buck
Package: rsyslog
Version: 8.2102.0-2+deb11u1
Severity: minor

Using the attached rsyslog.conf, with this test log:

/usr/bin/printf 'TEST BYTES 
\xc3\xb1\xc3\x28\xa0\xa1\xe2\x82\xa1\xe2\x28\xa1\xe2\x82\x28\xf0\x90\x8c\xbc\xf0\x28\x8c\xbc\xf0\x90\x28\xbc\xf0\x28\x8c\x28\xf8\xa1\xa1\xa1\xa1\xfc\xa1\xa1\xa1\xa1\xa1'
 | logger -p auth.0 -t invalid-utf8-test

...I find that mmutf8fix has fixed auth.log, but not the emergency
event printed to logged-in terminals.

I *guess* this is because omusrmsg uses "properties" instead of "the message"?

Note that once it has been called, it actually modifies the message.
The original messsage is then no longer available.
However, this DOES NOT CHANGE ANY PROPERTIES set, used or extracted before 
the modification is done.


https://rsyslog.readthedocs.io/en/latest/configuration/modules/mmutf8fix.html


This issue doesn't really bother me, but
it would be nice if it was explicitly mentioned in the documentation, e.g.

For example, omusrmsg will not be affected, because
it uses properties (ignored by mmutf8fix) and ignores the message (fixed by 
mmutf8fix).



-- System Information:
Debian Release: 11.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 
'proposed-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.18.0-0.deb11.4-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_WARN, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
$umask 0022
$WorkDirectory /var/spool/rsyslog
$MaxOpenFiles 2

module(load="imuxsock")
module(load="imklog")
module(load="imudp")
module(load="imrelp")
input(type="imudp" port="514")
input(type="imrelp" port="2514" KeepAlive="on")

module(load="mmutf8fix")
action(type="mmutf8fix")

template(name="PrisonPCFileFormat" type="list") {
property(name="timegenerated" dateFormat="rfc3339")
constant(value=" ")
property(name="hostname")
constant(value=" ")
property(name="syslogtag" field.delimiter="58" field.number="1")
constant(value=":")
property(name="msg" spifno1stsp="on")
property(name="msg" droplastlf="on")
constant(value="\n")
}

module(load="builtin:omfile"
   template="PrisonPCFileFormat"
   dirCreateMode="0755"
   fileCreateMode="0640"
   fileOwner="root"
   fileGroup="adm")

if ($syslogfacility-text == "auth" or $syslogfacility-text == "authpriv") then {
action(type="omfile"
   file="/var/log/auth.log"
   sync="off"
   asyncWriting="on"
   flushInterval="1"
   ioBufferSize="128K")
} else {
action(type="omfile"
   file="/var/log/syslog"
   sync="off"
   asyncWriting="on"
   flushInterval="5"
   ioBufferSize="128K")
}

if ($syslogpriority-text == "emerg") then {
action(type="omusrmsg" users="*")
}

$IncludeConfig /etc/rsyslog.d/*.conf