Module Name: src
Committed By: gutteridge
Date: Wed Aug 21 16:30:27 UTC 2024
Modified Files:
src/sys/sys: syslog.h
src/usr.sbin/syslogd: syslogd.c
Log Message:
syslog.h & syslogd.c: avoid incorrect facility double-shifting
As discussed in PR lib/57172, don't double-shift facility values when
calculating logging contexts. Patch suggested by RVP, an approach also
consistent with what OpenBSD did, which is to simply remove LOG_MAKEPRI
and adjust the only place it's used in the tree. (This has the benefit
of exposing any third-party software that may have also been using the
incorrect value all this time.)
To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 src/sys/sys/syslog.h
cvs rdiff -u -r1.142 -r1.143 src/usr.sbin/syslogd/syslogd.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/sys/syslog.h
diff -u src/sys/sys/syslog.h:1.43 src/sys/sys/syslog.h:1.44
--- src/sys/sys/syslog.h:1.43 Thu Jul 11 06:05:58 2024
+++ src/sys/sys/syslog.h Wed Aug 21 16:30:27 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: syslog.h,v 1.43 2024/07/11 06:05:58 riastradh Exp $ */
+/* $NetBSD: syslog.h,v 1.44 2024/08/21 16:30:27 gutteridge Exp $ */
/*
* Copyright (c) 1982, 1986, 1988, 1993
@@ -62,12 +62,11 @@
#define LOG_PRIMASK 0x07 /* mask to extract priority part (internal) */
/* extract priority */
#define LOG_PRI(p) ((p) & LOG_PRIMASK)
-#define LOG_MAKEPRI(fac, pri) (((fac) << 3) | (pri))
#ifdef SYSLOG_NAMES
#define INTERNAL_NOPRI 0x10 /* the "no priority" priority */
/* mark "facility" */
-#define INTERNAL_MARK LOG_MAKEPRI(LOG_NFACILITIES, 0)
+#define INTERNAL_MARK (LOG_NFACILITIES<<3)
typedef struct _code {
const char *c_name;
int c_val;
Index: src/usr.sbin/syslogd/syslogd.c
diff -u src/usr.sbin/syslogd/syslogd.c:1.142 src/usr.sbin/syslogd/syslogd.c:1.143
--- src/usr.sbin/syslogd/syslogd.c:1.142 Sat Aug 3 02:43:37 2024
+++ src/usr.sbin/syslogd/syslogd.c Wed Aug 21 16:30:27 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: syslogd.c,v 1.142 2024/08/03 02:43:37 gutteridge Exp $ */
+/* $NetBSD: syslogd.c,v 1.143 2024/08/21 16:30:27 gutteridge Exp $ */
/*
* Copyright (c) 1983, 1988, 1993, 1994
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 19
#if 0
static char sccsid[] = "@(#)syslogd.c 8.3 (Berkeley) 4/4/94";
#else
-__RCSID("$NetBSD: syslogd.c,v 1.142 2024/08/03 02:43:37 gutteridge Exp $");
+__RCSID("$NetBSD: syslogd.c,v 1.143 2024/08/21 16:30:27 gutteridge Exp $");
#endif
#endif /* not lint */
@@ -1554,7 +1554,7 @@ printline(const char *hname, char *msg,
* messages with no facility specified.
*/
if ((pri & LOG_FACMASK) == LOG_KERN)
- pri = LOG_MAKEPRI(LOG_USER, LOG_PRI(pri));
+ pri = LOG_USER | LOG_PRI(pri);
if (bsdsyslog) {
buffer = printline_bsdsyslog(hname, p, flags, pri);