diff options
author | Geert Uytterhoeven <geert+renesas@glider.be> | 2018-10-11 10:42:48 +0200 |
---|---|---|
committer | Petr Mladek <pmladek@suse.com> | 2018-10-12 11:24:41 +0200 |
commit | ec12bc2909f9759747ab5ad3709472353c43a750 (patch) | |
tree | 7c3bca08162b8d12fc2aa26557ded249c1f1ac4e /lib/vsprintf.c | |
parent | 9073dac14e397f26603b14d5c0929186a0404a53 (diff) | |
download | linux-ec12bc2909f9759747ab5ad3709472353c43a750.tar.gz linux-ec12bc2909f9759747ab5ad3709472353c43a750.tar.bz2 linux-ec12bc2909f9759747ab5ad3709472353c43a750.zip |
lib/vsprintf: Hash legacy clock addresses
On platforms using the Common Clock Framework, "%pC" prints the clock's
name. On legacy platforms, it prints the unhashed clock's address,
potentially leaking sensitive information regarding the kernel layout in
memory.
Avoid this leak by printing the hashed address instead. To distinguish
between clocks, a 32-bit unique identifier is as good as an actual
pointer value.
Fixes: ad67b74d2469d9b8 ("printk: hash addresses printed with %p")
Link: http://lkml.kernel.org/r/20181011084249.4520-3-geert+renesas@glider.be
To: "Tobin C . Harding" <me@tobin.cc>
To: Andrew Morton <akpm@linux-foundation.org>
To: Jonathan Corbet <corbet@lwn.net>
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Diffstat (limited to 'lib/vsprintf.c')
-rw-r--r-- | lib/vsprintf.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/vsprintf.c b/lib/vsprintf.c index 94940ba3a3bc..fee87b038ead 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -1563,7 +1563,7 @@ char *clock(char *buf, char *end, struct clk *clk, struct printf_spec spec, #ifdef CONFIG_COMMON_CLK return string(buf, end, __clk_get_name(clk), spec); #else - return special_hex_number(buf, end, (unsigned long)clk, sizeof(unsigned long)); + return ptr_to_id(buf, end, clk, spec); #endif } } |