[PATCH] dmesg: don't use magic numbers in klogctl()

Bence Csókás csokas.bence at prolan.hu
Fri Jan 3 14:48:53 UTC 2025


From: Bartosz Golaszewski <bartekgola at gmail.com>

Signed-off-by: Bartosz Golaszewski <bartekgola at gmail.com>
[ csokas.bence: Rebase and fix conflicts ]
Signed-off-by: Bence Csókás <csokas.bence at prolan.hu>
---
 util-linux/dmesg.c | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/util-linux/dmesg.c b/util-linux/dmesg.c
index 5d8f01a64..7a1b554c3 100644
--- a/util-linux/dmesg.c
+++ b/util-linux/dmesg.c
@@ -57,6 +57,20 @@
 #include <sys/klog.h>
 #include "libbb.h"
 
+enum {
+	SYSLOG_ACTION_CLOSE = 0,
+	SYSLOG_ACTION_OPEN,
+	SYSLOG_ACTION_READ,
+	SYSLOG_ACTION_READ_ALL,
+	SYSLOG_ACTION_READ_CLEAR,
+	SYSLOG_ACTION_CLEAR,
+	SYSLOG_ACTION_CONSOLE_OFF,
+	SYSLOG_ACTION_CONSOLE_ON,
+	SYSLOG_ACTION_CONSOLE_LEVEL,
+	SYSLOG_ACTION_SIZE_UNREAD,
+	SYSLOG_ACTION_SIZE_BUFFER,
+};
+
 int dmesg_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int dmesg_main(int argc UNUSED_PARAM, char **argv)
 {
@@ -72,20 +86,24 @@ int dmesg_main(int argc UNUSED_PARAM, char **argv)
 
 	opts = getopt32(argv, "cs:+n:+r", &len, &level);
 	if (opts & OPT_n) {
-		if (klogctl(8, NULL, (long) level))
+		if (klogctl(SYSLOG_ACTION_CONSOLE_LEVEL, NULL, (long) level))
 			bb_simple_perror_msg_and_die("klogctl");
 		return EXIT_SUCCESS;
 	}
 
 	if (!(opts & OPT_s))
-		len = klogctl(10, NULL, 0); /* read ring buffer size */
+		/* read ring buffer size */
+		len = klogctl(SYSLOG_ACTION_SIZE_BUFFER, NULL, 0);
 	if (len < 16*1024)
 		len = 16*1024;
 	if (len > 16*1024*1024)
 		len = 16*1024*1024;
 
 	buf = xmalloc(len);
-	len = klogctl(3 + (opts & OPT_c), buf, len); /* read ring buffer */
+	/* read ring buffer */
+	len = klogctl((opts & OPT_c) ? SYSLOG_ACTION_READ_CLEAR
+				     : SYSLOG_ACTION_READ_ALL,
+		       buf, len);
 	if (len < 0)
 		bb_simple_perror_msg_and_die("klogctl");
 	if (len == 0)
-- 
2.34.1




More information about the busybox mailing list