On Tue, Jan 19, 2021 at 07:38:24PM +0900, Sergey Senozhatsky wrote: > On (21/01/19 01:47), Matthew Wilcox wrote: > [..] > > > > > So maybe DUMP_PREFIX_UNHASHED can do the unhashed dump only when > > > CONFIG_DEBUG_KERNEL=y and fallback to DUMP_PREFIX_ADDRESS otherwise? > > > > Distros enable CONFIG_DEBUG_KERNEL. > > Oh, I see. > > > If you want to add CONFIG_DEBUG_LEAK_ADDRESSES, then that's great, > > and you won't even have to change users, you can just change how %p > > behaves. > > I like the name. config dependent behaviour of %p wouldn't be new, > well, to some extent, e.g. XFS does something similar (see below). > I don't think Linus will be sold on this, however. > > > fs/xfs/xfs_linux.h: > > /* > * Starting in Linux 4.15, the %p (raw pointer value) printk modifier > * prints a hashed version of the pointer to avoid leaking kernel > * pointers into dmesg. If we're trying to debug the kernel we want the > * raw values, so override this behavior as best we can. > */ > #ifdef DEBUG > # define PTR_FMT "%px" > #else > # define PTR_FMT "%p" > #endif > > And then they just use it as > > xfs_alert(mp, "%s: bad inode magic number, dip = "ptr_fmt", > dino bp = "ptr_fmt", ino = %ld", > __func__, dip, bp, in_f->ilf_ino); > > -ss Please no, this is effectively a toggle. -- Kees Cook