linux_dsm_epyc7002/lib
Ilya Dryomov 7bd57fbc4a vsprintf: don't obfuscate NULL and error pointers
I don't see what security concern is addressed by obfuscating NULL
and IS_ERR() error pointers, printed with %p/%pK.  Given the number
of sites where %p is used (over 10000) and the fact that NULL pointers
aren't uncommon, it probably wouldn't take long for an attacker to
find the hash that corresponds to 0.  Although harder, the same goes
for most common error values, such as -1, -2, -11, -14, etc.

The NULL part actually fixes a regression: NULL pointers weren't
obfuscated until commit 3e5903eb9c ("vsprintf: Prevent crash when
dereferencing invalid pointers") which went into 5.2.  I'm tacking
the IS_ERR() part on here because error pointers won't leak kernel
addresses and printing them as pointers shouldn't be any different
from e.g. %d with PTR_ERR_OR_ZERO().  Obfuscating them just makes
debugging based on existing pr_debug and friends excruciating.

Note that the "always print 0's for %pK when kptr_restrict == 2"
behaviour which goes way back is left as is.

Example output with the patch applied:

                             ptr         error-ptr              NULL
 %p:            0000000001f8cc5b  fffffffffffffff2  0000000000000000
 %pK, kptr = 0: 0000000001f8cc5b  fffffffffffffff2  0000000000000000
 %px:           ffff888048c04020  fffffffffffffff2  0000000000000000
 %pK, kptr = 1: ffff888048c04020  fffffffffffffff2  0000000000000000
 %pK, kptr = 2: 0000000000000000  0000000000000000  0000000000000000

Fixes: 3e5903eb9c ("vsprintf: Prevent crash when dereferencing invalid pointers")
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-05-19 11:35:38 -07:00
..
842
crypto crypto: arm64/chacha - correctly walk through blocks 2020-03-20 14:35:27 +11:00
dim
fonts
kunit kunit: Add missing newline in summary message 2020-04-23 15:42:00 -06:00
livepatch livepatch/samples/selftest: Use klp_shadow_alloc() API correctly 2020-01-17 11:12:06 +01:00
lz4 lz4: do not export static symbol 2019-09-20 09:06:26 -07:00
lzo lib/lzo/lzo1x_compress.c: fix alignment bug in lzo-rle 2019-09-25 17:51:41 -07:00
math lib/math/rational.c: fix possible incorrect result from rational fractions helper 2019-12-04 19:44:13 -08:00
mpi lib/mpi: Fix building for powerpc with clang 2020-04-24 13:14:59 +10:00
raid6 x86: update AS_* macros to binutils >=2.23, supporting ADX and AVX2 2020-04-09 00:12:48 +09:00
reed_solomon
vdso lib/vdso: Enable common headers 2020-03-21 15:24:03 +01:00
xz lib/xz: fix XZ_DYNALLOC to avoid useless memory reallocations 2019-11-15 18:34:00 -08:00
zlib_deflate lib/zlib: add zlib_deflate_dfltcc_enabled() function 2020-01-31 10:30:40 -08:00
zlib_dfltcc lib/zlib: add zlib_deflate_dfltcc_enabled() function 2020-01-31 10:30:40 -08:00
zlib_inflate lib/zlib: add s390 hardware support for kernel zlib_inflate 2020-01-31 10:30:40 -08:00
zstd
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
argv_split.c
ashldi3.c
ashrdi3.c
asn1_decoder.c
assoc_array.c
atomic64_test.c
atomic64.c
audit.c
bcd.c
bch.c lib/bch.c: replace zero-length array with flexible-array member 2020-04-07 10:43:42 -07:00
bitmap.c lib: rework bitmap_parse() 2020-02-04 03:05:26 +00:00
bitrev.c
bootconfig.c tools/bootconfig: Show line and column in parse error 2020-03-03 17:38:42 -05:00
bsearch.c lib/bsearch: Use generic type for comparator function 2019-11-14 13:15:11 -05:00
btree.c
bucket_locks.c
bug.c bug: move WARN_ON() "cut here" into exception handler 2019-09-25 17:51:41 -07:00
build_OID_registry
bust_spinlocks.c
check_signature.c
checksum.c
clz_ctz.c
clz_tab.c
cmdline.c
cmpdi2.c
compat_audit.c
cpu_rmap.c lib: cpu_rmap: Use pr_warn instead of pr_warning 2019-10-18 15:01:57 +02:00
cpumask.c sched/core: Distribute tasks within affinity masks 2020-03-20 13:06:18 +01:00
crc4.c
crc7.c
crc8.c
crc16.c
crc32.c
crc32defs.h
crc32test.c
crc64.c lib: crc64: include <linux/crc64.h> for 'crc64_be' 2020-01-23 11:40:01 -07:00
crc-ccitt.c
crc-itu-t.c
crc-t10dif.c
ctype.c
debug_info.c
debug_locks.c
debugobjects.c debugobjects: Fix various data races 2020-01-17 15:45:01 +01:00
dec_and_lock.c
decompress_bunzip2.c
decompress_inflate.c lib/zlib: add s390 hardware support for kernel zlib_inflate 2020-01-31 10:30:40 -08:00
decompress_unlz4.c
decompress_unlzma.c
decompress_unlzo.c
decompress_unxz.c
decompress.c
devres.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
digsig.c
dump_stack.c dump_stack: avoid the livelock of the dump_lock 2019-11-06 08:47:50 -08:00
dynamic_debug.c lib/dynamic_debug.c: use address-of operator on section symbols 2020-04-07 10:43:43 -07:00
dynamic_queue_limits.c
earlycpio.c
errname.c printf: add support for printing symbolic error names 2019-10-17 16:23:25 +02:00
error-inject.c
errseq.c
extable.c lib/extable.c: add missing prototypes 2019-09-25 17:51:39 -07:00
fault-inject.c
fdt_addresses.c libfdt: include fdt_addresses.c 2020-01-08 16:59:19 +00:00
fdt_empty_tree.c
fdt_ro.c
fdt_rw.c
fdt_strerror.c
fdt_sw.c
fdt_wip.c
fdt.c
find_bit_benchmark.c
find_bit.c lib/find_bit.c: uninline helper _find_next_bit() 2020-01-31 10:30:41 -08:00
flex_proportions.c
gen_crc32table.c
gen_crc64table.c
genalloc.c lib/genalloc.c: rename addr_in_gen_pool to gen_pool_has_addr 2019-12-04 19:44:13 -08:00
generic-radix-tree.c lib/generic-radix-tree.c: add kmemleak annotations 2019-10-14 15:04:00 -07:00
glob.c
globtest.c
hexdump.c lib/hexdump: make print_hex_dump_bytes() a nop on !DEBUG builds 2019-09-25 17:51:39 -07:00
hweight.c
idr.c idr: Fix idr_get_next_ul race with idr_remove 2019-11-01 22:26:34 -04:00
inflate.c
interval_tree_test.c
interval_tree.c
iomap_copy.c
iomap.c
iommu-helper.c
ioremap.c lib: provide a simple generic ioremap implementation 2019-11-11 21:18:20 +01:00
iov_iter.c pipe: Fix bogus dereference in iov_iter_alignment() 2019-12-16 12:48:10 -05:00
irq_poll.c
irq_regs.c
is_single_threaded.c
kasprintf.c
Kconfig mm/memremap_pages: Introduce memremap_compat_align() 2020-02-20 16:58:55 -08:00
Kconfig.debug Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf 2020-04-09 17:39:22 -07:00
Kconfig.kasan kasan: support backing vmalloc space with real shadow memory 2019-12-01 12:59:05 -08:00
Kconfig.kgdb lib/: fix Kconfig indentation 2019-12-07 11:00:19 -08:00
Kconfig.ubsan ubsan: disable UBSAN_ALIGNMENT under COMPILE_TEST 2020-05-07 19:27:21 -07:00
kfifo.c
klist.c
kobject_uevent.c
kobject.c
kstrtox.c
kstrtox.h
libcrc32c.c
list_debug.c
list_sort.c
list-test.c Fix linked-list KUnit test when run multiple times 2020-03-25 16:38:39 -06:00
llist.c
locking-selftest-hardirq.h
locking-selftest-mutex.h
locking-selftest-rlock-hardirq.h
locking-selftest-rlock-softirq.h
locking-selftest-rlock.h
locking-selftest-rsem.h
locking-selftest-rtmutex.h
locking-selftest-softirq.h
locking-selftest-spin-hardirq.h
locking-selftest-spin-softirq.h
locking-selftest-spin.h
locking-selftest-wlock-hardirq.h
locking-selftest-wlock-softirq.h
locking-selftest-wlock.h
locking-selftest-wsem.h
locking-selftest.c locking/lockdep: Remove unused @nested argument from lock_release() 2019-10-09 12:46:10 +02:00
lockref.c
logic_pio.c lib: logic_pio: Enforce LOGIC_PIO_INDIRECT region ops are set at registration 2019-11-05 08:45:25 +08:00
lru_cache.c
lshrdi3.c
Makefile ubsan: add trap instrumentation option 2020-04-07 10:43:44 -07:00
memcat_p.c
memory-notifier-error-inject.c
memregion.c lib: Uplevel the pmem "region" ida to a global allocator 2019-11-07 15:44:29 +01:00
memweight.c
muldi3.c
net_utils.c
netdev-notifier-error-inject.c
nlattr.c
nmi_backtrace.c
nodemask.c
notifier-error-inject.c
notifier-error-inject.h
objagg.c lib: objagg: Replace zero-length arrays with flexible-array member 2020-02-16 18:33:00 -08:00
of-reconfig-notifier-error-inject.c
oid_registry.c
once.c
packing.c
parman.c
parser.c
pci_iomap.c
percpu_counter.c
percpu_test.c
percpu-refcount.c percpu_ref: Fix comment regarding percpu_ref_init flags 2020-03-05 13:10:26 -08:00
plist.c
pm-notifier-error-inject.c
radix-tree.c ida: remove abandoned macros 2020-01-31 15:09:49 -05:00
random32.c
ratelimit.c
rbtree_test.c augmented rbtree: add new RB_DECLARE_CALLBACKS_MAX macro 2019-09-25 17:51:39 -07:00
rbtree.c lib/rbtree: fix coding style of assignments 2020-04-07 10:43:43 -07:00
refcount.c locking/refcount: Consolidate implementations of refcount_t 2019-11-25 09:15:32 +01:00
rhashtable.c
sbitmap.c sbitmap: only queue kyber's wait callback if not already active 2019-12-20 16:51:54 -07:00
scatterlist.c lib/scatterlist: fix sg_copy_buffer() kerneldoc 2020-04-07 10:43:43 -07:00
seq_buf.c seq_buf: Add printing formatted hex dumps 2019-11-14 13:15:12 -05:00
sg_pool.c
sg_split.c
sha1.c
show_mem.c mm: remove quicklist page table caches 2019-09-24 15:54:09 -07:00
siphash.c
smp_processor_id.c lib/smp_processor_id: Don't use cpumask_equal() 2019-10-09 12:46:10 +02:00
sort.c lib/sort: Move swap, cmp and cmp_r function types for wider use 2019-11-14 13:15:11 -05:00
stackdepot.c kasan: stackdepot: move filter_irq_stacks() to stackdepot.c 2020-04-07 10:43:43 -07:00
stmp_device.c
string_helpers.c
string.c lib/string.c: update match_string() doc-strings with correct behavior 2020-02-21 11:22:15 -08:00
strncpy_from_user.c lib: Reduce user_access_begin() boundaries in strncpy_from_user() and strnlen_user() 2020-01-24 09:27:34 -08:00
strnlen_user.c lib: Reduce user_access_begin() boundaries in strncpy_from_user() and strnlen_user() 2020-01-24 09:27:34 -08:00
syscall.c
test_bitfield.c
test_bitmap.c lib/test_bitmap.c: make use of EXP2_IN_BITS 2020-04-07 10:43:43 -07:00
test_blackhole_dev.c
test_bpf.c bpf/tests: Use migrate disable instead of preempt disable 2020-02-24 16:20:09 -08:00
test_debug_virtual.c
test_firmware.c test_firmware: add support for firmware_request_platform 2020-03-20 14:54:04 +01:00
test_hash.c
test_hexdump.c
test_ida.c
test_kasan.c kasan: add test for invalid size in memmove 2020-04-02 09:35:30 -07:00
test_kmod.c lib/test_kmod.c: remove a NULL test 2020-04-07 10:43:43 -07:00
test_list_sort.c
test_lockup.c lib/test_lockup.c: add parameters for locking generic vfs locks 2020-04-07 10:43:42 -07:00
test_memcat_p.c
test_meminit.c lib/test_meminit.c: add bulk alloc/free tests 2019-12-04 19:44:13 -08:00
test_min_heap.c lib: Introduce generic min-heap 2020-03-06 11:56:59 +01:00
test_module.c
test_objagg.c
test_overflow.c
test_parman.c
test_printf.c vsprintf: don't obfuscate NULL and error pointers 2020-05-19 11:35:38 -07:00
test_rhashtable.c
test_siphash.c
test_sort.c
test_stackinit.c lib: test_stackinit.c: XFAIL switch variable init tests 2020-04-07 10:43:43 -07:00
test_static_key_base.c
test_static_keys.c
test_string.c
test_strscpy.c
test_sysctl.c
test_ubsan.c
test_user_copy.c usercopy: Avoid soft lockups in test_check_nonzero_user() 2019-10-16 14:56:21 +02:00
test_uuid.c
test_vmalloc.c
test_xarray.c XArray: Fix xas_pause for large multi-index entries 2020-01-31 15:09:49 -05:00
test-kstrtox.c
test-string_helpers.c
textsearch.c lib: textsearch: fix escapes in example code 2019-10-03 12:12:23 -04:00
timerqueue.c
ts_bm.c lib/ts_bm.c: replace zero-length array with flexible-array member 2020-04-07 10:43:42 -07:00
ts_fsm.c lib/ts_fsm.c: replace zero-length array with flexible-array member 2020-04-07 10:43:43 -07:00
ts_kmp.c lib/ts_kmp.c: replace zero-length array with flexible-array member 2020-04-07 10:43:43 -07:00
ubsan.c ubsan: include bug type in report header 2020-04-07 10:43:44 -07:00
ubsan.h int128: move __uint128_t compiler test to Kconfig 2019-11-17 09:02:42 +08:00
ucmpdi2.c
ucs2_string.c
usercopy.c lib: introduce copy_struct_from_user() helper 2019-10-01 15:45:03 +02:00
uuid.c uuid: Provide a GUID generator for raw buffer 2020-03-23 17:01:47 +01:00
vsprintf.c vsprintf: don't obfuscate NULL and error pointers 2020-05-19 11:35:38 -07:00
win_minmax.c
xarray.c xarray: Fix early termination of xas_for_each_marked 2020-03-12 17:42:08 -04:00
xxhash.c