diff options
author | Timur Tabi <timur@kernel.org> | 2021-02-14 17:13:48 +0100 |
---|---|---|
committer | Petr Mladek <pmladek@suse.com> | 2021-02-15 11:08:32 +0100 |
commit | 5ead723a20e0447bc7db33dc3070b420e5f80aa6 (patch) | |
tree | 48c75744ea69ab8a453743e41ab00d3c8a642839 /lib/test_printf.c | |
parent | kselftest: add support for skipped tests (diff) | |
download | linux-5ead723a20e0447bc7db33dc3070b420e5f80aa6.tar.xz linux-5ead723a20e0447bc7db33dc3070b420e5f80aa6.zip |
lib/vsprintf: no_hash_pointers prints all addresses as unhashed
If the no_hash_pointers command line parameter is set, then
printk("%p") will print pointers as unhashed, which is useful for
debugging purposes. This change applies to any function that uses
vsprintf, such as print_hex_dump() and seq_buf_printf().
A large warning message is displayed if this option is enabled.
Unhashed pointers expose kernel addresses, which can be a security
risk.
Also update test_printf to skip the hashed pointer tests if the
command-line option is set.
Signed-off-by: Timur Tabi <timur@kernel.org>
Acked-by: Petr Mladek <pmladek@suse.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Marco Elver <elver@google.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20210214161348.369023-4-timur@kernel.org
Diffstat (limited to 'lib/test_printf.c')
-rw-r--r-- | lib/test_printf.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/test_printf.c b/lib/test_printf.c index ad2bcfa8caa1..a6755798e9e6 100644 --- a/lib/test_printf.c +++ b/lib/test_printf.c @@ -35,6 +35,8 @@ KSTM_MODULE_GLOBALS(); static char *test_buffer __initdata; static char *alloced_buffer __initdata; +extern bool no_hash_pointers; + static int __printf(4, 0) __init do_test(int bufsize, const char *expect, int elen, const char *fmt, va_list ap) @@ -301,6 +303,12 @@ plain(void) { int err; + if (no_hash_pointers) { + pr_warn("skipping plain 'p' tests"); + skipped_tests += 2; + return; + } + err = plain_hash(); if (err) { pr_warn("plain 'p' does not appear to be hashed\n"); |