diff options
| author | Timur Tabi <[email protected]> | 2021-02-14 16:13:48 +0000 |
|---|---|---|
| committer | Petr Mladek <[email protected]> | 2021-02-15 10:08:32 +0000 |
| commit | 5ead723a20e0447bc7db33dc3070b420e5f80aa6 (patch) | |
| tree | 48c75744ea69ab8a453743e41ab00d3c8a642839 /lib/test_printf.c | |
| parent | kselftest: add support for skipped tests (diff) | |
| download | kernel-5ead723a20e0447bc7db33dc3070b420e5f80aa6.tar.gz kernel-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 <[email protected]>
Acked-by: Petr Mladek <[email protected]>
Acked-by: Randy Dunlap <[email protected]>
Acked-by: Sergey Senozhatsky <[email protected]>
Acked-by: Vlastimil Babka <[email protected]>
Acked-by: Marco Elver <[email protected]>
Signed-off-by: Petr Mladek <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
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"); |
