lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <a41b5ad3-d052-49b8-e038-b020c1dc6788@tuyoix.net>
Date:   Wed, 10 Aug 2022 14:25:11 -0600 (MDT)
From:   Marc Aurèle La France <tsi@...oix.net>
To:     Petr Mladek <pmladek@...e.com>,
        Sergey Senozhatsky <senozhatsky@...omium.org>,
        linux-kernel@...r.kernel.org
Subject: [PATCH] printk: Export log_buf_len to userland

Make the kernel log's buffer size available to userland so it can be used with
`dmesg -s`.

This change is not eligible for stable@.

Please Reply-To-All.

Thanks and have a great day.

Marc.

Signed-off-by: Marc Aurèle La France <tsi@...oix.net>

diff -aNpRruz -X /etc/diff.excludes linux-5.17.1/include/linux/printk.h devel-5.17.1/include/linux/printk.h
--- linux-5.17.1/include/linux/printk.h	2022-03-28 02:03:22.000000000 -0600
+++ devel-5.17.1/include/linux/printk.h	2022-03-28 07:14:10.803008293 -0600
@@ -318,6 +337,7 @@ extern void __printk_cpu_unlock(void);
 #endif /* CONFIG_SMP */

 extern int kptr_restrict;
+extern u32 log_buf_len;

 /**
  * pr_fmt - used by the pr_*() macros to generate the printk format string
diff -aNpRruz -X /etc/diff.excludes linux-5.17.1/kernel/printk/printk.c devel-5.17.1/kernel/printk/printk.c
--- linux-5.17.1/kernel/printk/printk.c	2022-03-28 02:03:22.000000000 -0600
+++ devel-5.17.1/kernel/printk/printk.c	2022-03-28 07:14:10.803008293 -0600
@@ -404,7 +404,7 @@ static struct latched_seq clear_seq = {
 #define LOG_BUF_LEN_MAX (u32)(1 << 31)
 static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN);
 static char *log_buf = __log_buf;
-static u32 log_buf_len = __LOG_BUF_LEN;
+u32 log_buf_len = __LOG_BUF_LEN;

 /*
  * Define the average message size. This only affects the number of
diff -aNpRruz -X /etc/diff.excludes linux-5.17.1/kernel/printk/sysctl.c devel-5.17.1/kernel/printk/sysctl.c
--- linux-5.17.1/kernel/printk/sysctl.c	2022-03-28 02:03:22.000000000 -0600
+++ devel-5.17.1/kernel/printk/sysctl.c	2022-03-28 07:14:10.803008293 -0600
@@ -22,6 +22,13 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,

 static struct ctl_table printk_sysctls[] = {
 	{
+		.procname	= "log_buf_len",
+		.data		= &log_buf_len,
+		.maxlen		= sizeof(u32),
+		.mode		= 0444,
+		.proc_handler	= proc_dointvec,
+	},
+	{
 		.procname	= "printk",
 		.data		= &console_loglevel,
 		.maxlen		= 4*sizeof(int),

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ