NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

bin/60338: The log priority after a newline in log(9) is forced to LOG_KERN | LOG_NOTICE



>Number:         60338
>Category:       bin
>Synopsis:       The log priority after a newline in log(9) is forced to LOG_KERN | LOG_NOTICE
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jun 17 09:25:00 +0000 2026
>Originator:     Masanobu SAITOH
>Release:        
>Organization:
somewhere
>Environment:
-current
>Description:
When passing a multi-line string containing newline characters to log(9), all lines after the first are forced to use the priority LOG_KERN | LOG_NOTICE (DEFSPRI defined in usr.sbin/syslogd/syslogd.h).
This behavior is likely unintended.
>How-To-Repeat:
Diff for the test:

Index: init_sysctl.c
===================================================================
RCS file: /cvsroot/src/sys/kern/init_sysctl.c,v
retrieving revision 1.230
diff -u -p -r1.230 init_sysctl.c
--- init_sysctl.c       15 Feb 2026 21:47:18 -0000      1.230
+++ init_sysctl.c       17 Jun 2026 09:01:57 -0000
@@ -843,6 +843,7 @@ sysctl_kern_rtc_offset(SYSCTLFN_ARGS)
        return (settime(l->l_proc, &ts));
 }

+#include <sys/syslog.h>
 /*
  * sysctl helper routine for kern.maxproc. Ensures that the new
  * values are not too low or too high.
@@ -857,6 +858,10 @@ sysctl_kern_maxproc(SYSCTLFN_ARGS)
        node = *rnode;
        node.sysctl_data = &nmaxproc;
        error = sysctl_lookup(SYSCTLFN_CALL(&node));
+       log(LOG_DEBUG, "maxproc0=%d\n", maxproc);
+       log(LOG_DEBUG, "maxproc1=%d\nmaxproc2=%d\n", maxproc, maxproc);
+       log(LOG_LOCAL0 | LOG_DEBUG, "maxproc3=%d\n", maxproc);
+       log(LOG_LOCAL0 | LOG_DEBUG, "maxproc4=%d\nmaxproc5=%d\n", maxproc, maxproc);
        if (error || newp == NULL)
                return (error);

Add following four lines into /etc/syslog.conf:
kern.debug                                              /var/log/kern-debug
kern.notice                                             /var/log/kern-notice
local0.debug                                            /var/log/local0-debug
local0.notice                                           /var/log/local0-notice


# cd /var/log
# rm -f kern-debug kern-notice local0-debug local0-notice
# touch kern-debug kern-notice local0-debug local0-notice
# /etc/rc.d/syslogd restart
Stopping syslogd.
Starting syslogd.
# sysctl kern.maxproc
kern.maxproc = 1044
# cat kern-debug
Jun 17 18:06:14 zen5 /netbsd: [ 2209.0403704] maxproc0=1044
Jun 17 18:06:14 zen5 /netbsd: [ 2209.0403704] maxproc1=1044
Jun 17 18:06:14 zen5 /netbsd: [ 2209.0403704] maxproc2=1044
Jun 17 18:06:14 zen5 /netbsd: [ 2209.0403704] maxproc5=1044 (changed to LOG_KERN)
# cat kern-notice
Jun 17 18:06:14 zen5 /netbsd: [ 2209.0403704] maxproc2=1044 (changed to LOG_KERN | LOG_NOTICE)
Jun 17 18:06:14 zen5 /netbsd: [ 2209.0403704] maxproc5=1044 (changed to LOG_KERN | LOG_NOTICE)
# cat local0-debug
Jun 17 18:06:14 zen5 /netbsd: [ 2209.0403704] maxproc3=1044
Jun 17 18:06:14 zen5 /netbsd: [ 2209.0403704] maxproc4=1044
zen5# cat local0-notice
#
>Fix:
Fix usr.sbin/syslogd/syslogd.c::printsys() or somewhere else.




Home | Main Index | Thread Index | Old Index