]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
kernel/panic: increase buffer size for verbose taint logging
authorRio <rioo.tsukatsukii@gmail.com>
Fri, 20 Feb 2026 15:15:00 +0000 (20:45 +0530)
committerAndrew Morton <akpm@linux-foundation.org>
Sat, 28 Mar 2026 04:19:33 +0000 (21:19 -0700)
The verbose 'Tainted: ...' string in print_tainted_seq can total to 327
characters while the buffer defined in _print_tainted is 320 bytes.
Increase its size to 350 characters to hold all flags, along with some
headroom.

[akpm@linux-foundation.org: fix spello, add comment]
Link: https://lkml.kernel.org/r/20260220151500.13585-1-rioo.tsukatsukii@gmail.com
Signed-off-by: Rio <rioo.tsukatsukii@gmail.com>
Cc: Joel Granados <joel.granados@kernel.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Wang Jinchao <wangjinchao600@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
kernel/panic.c

index c78600212b6c112a7a769be9c92edd6d295f6d43..75368738d32dd88bfc232ebbd7f2af805ef33478 100644 (file)
@@ -801,6 +801,8 @@ EXPORT_SYMBOL(panic);
  * Documentation/admin-guide/tainted-kernels.rst, including its
  * small shell script that prints the TAINT_FLAGS_COUNT bits of
  * /proc/sys/kernel/tainted.
+ *
+ * Also, update TAINT_BUF_MAX below.
  */
 const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = {
        TAINT_FLAG(PROPRIETARY_MODULE,          'P', 'G'),
@@ -854,10 +856,12 @@ static void print_tainted_seq(struct seq_buf *s, bool verbose)
        }
 }
 
+/* 350 can accommodate all taint flags in verbose mode, with some headroom */
+#define TAINT_BUF_MAX 350
+
 static const char *_print_tainted(bool verbose)
 {
-       /* FIXME: what should the size be? */
-       static char buf[sizeof(taint_flags)];
+       static char buf[TAINT_BUF_MAX];
        struct seq_buf s;
 
        BUILD_BUG_ON(ARRAY_SIZE(taint_flags) != TAINT_FLAGS_COUNT);