kernel-fxtec-pro1x/lib
Alexander Potapenko da3418ad74 lib/stackdepot.c: fix global out-of-bounds in stack_slabs
[ Upstream commit 305e519ce48e935702c32241f07d393c3c8fed3e ]

Walter Wu has reported a potential case in which init_stack_slab() is
called after stack_slabs[STACK_ALLOC_MAX_SLABS - 1] has already been
initialized.  In that case init_stack_slab() will overwrite
stack_slabs[STACK_ALLOC_MAX_SLABS], which may result in a memory
corruption.

Link: http://lkml.kernel.org/r/20200218102950.260263-1-glider@google.com
Fixes: cd11016e5f ("mm, kasan: stackdepot implementation. Enable stackdepot for SLAB")
Signed-off-by: Alexander Potapenko <glider@google.com>
Reported-by: Walter Wu <walter-zh.wu@mediatek.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Kate Stewart <kstewart@linuxfoundation.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-02-28 16:38:55 +01:00
..
842
fonts lib/fonts: convert comments to utf-8 2018-08-23 18:48:43 -07:00
lz4
lzo
mpi lib/mpi: Fix karactx leak in mpi_powm 2019-07-10 09:53:42 +02:00
raid6 lib: raid6: fix awk build warnings 2019-12-17 20:34:51 +01:00
reed_solomon rslib: Fix handling of of caller provided syndrome 2019-07-26 09:14:12 +02:00
xz lib/xz: Put CRC32_POLY_LE in xz_private.h 2018-10-02 08:44:59 +10:00
zlib_deflate
zlib_inflate
zstd lib: zstd: clean up Makefile for simpler composite object handling 2018-03-26 02:01:27 +09:00
.gitignore lib: add crc64 calculation routines 2018-08-22 10:52:48 -07:00
argv_split.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
ashldi3.c move libgcc.h to include/linux 2017-12-01 13:09:40 -08:00
ashrdi3.c move libgcc.h to include/linux 2017-12-01 13:09:40 -08:00
asn1_decoder.c ASN.1: check for error from ASN1_OP_END__ACT actions 2017-12-08 15:13:27 +00:00
assoc_array.c assoc_array: Fix shortcut creation 2019-03-23 20:09:48 +01:00
atomic64.c atomics/generic: Define atomic64_fetch_add_unless() 2018-06-21 14:25:21 +02:00
atomic64_test.c
audit.c
bcd.c
bch.c lib/bch: fix possible stack overrun 2018-10-12 09:17:46 +02:00
bitmap.c lib/bitmap.c: fix remaining space computation in bitmap_print_to_pagebuf 2019-12-01 09:17:08 +01:00
bitrev.c
bsearch.c kprobes: Prohibit probing on bsearch() 2019-04-05 22:33:08 +02:00
btree.c btree: avoid variable-length allocations 2018-03-14 16:55:29 -07:00
bucket_locks.c ila: make lockdep happy again 2018-08-16 12:14:42 -07:00
bug.c lib/bug.c: exclude non-BUG/WARN exceptions from report_bug() 2018-03-09 16:40:01 -08:00
build_OID_registry
bust_spinlocks.c
chacha20.c crypto: chacha20 - Fix chacha20_block() keystream alignment (again) 2019-11-20 18:47:11 +01:00
check_signature.c
checksum.c
clz_ctz.c
clz_tab.c
cmdline.c
cmpdi2.c move libgcc.h to include/linux 2017-12-01 13:09:40 -08:00
compat_audit.c
cordic.c
cpu_rmap.c
cpumask.c lib: optimize cpumask_next_and() 2018-02-06 18:32:44 -08:00
crc-ccitt.c lib/crc-ccitt: Add CCITT-FALSE CRC16 variant 2018-01-08 10:08:33 +00:00
crc-itu-t.c
crc-t10dif.c
crc4.c
crc7.c
crc8.c
crc16.c
crc32.c lib/crc: Use consistent naming for CRC-32 polynomials 2018-07-27 19:04:33 +08:00
crc32defs.h lib/crc: Move polynomial definition to separate header 2018-07-27 19:04:33 +08:00
crc32test.c
crc64.c lib: add crc64 calculation routines 2018-08-22 10:52:48 -07:00
ctype.c
debug_info.c
debug_locks.c locking/lockdep: Fix debug_locks off performance problem 2018-11-13 11:08:20 -08:00
debugobjects.c debugobjects: avoid recursive calls with kmemleak 2018-12-17 09:24:41 +01:00
dec_and_lock.c atomic: Add irqsave variant of atomic_dec_and_lock() 2018-06-12 23:33:24 +02:00
decompress.c
decompress_bunzip2.c lib: Use existing define with polynomial 2018-07-27 19:16:38 +08:00
decompress_inflate.c
decompress_unlz4.c
decompress_unlzma.c
decompress_unlzo.c
decompress_unxz.c
devres.c devres: allow const resource arguments 2020-01-27 14:51:00 +01:00
digsig.c
div64.c lib/div64.c: off by one in shift 2019-04-20 09:16:05 +02:00
dump_stack.c dump_stack: avoid the livelock of the dump_lock 2019-11-12 19:20:37 +01:00
dynamic_debug.c jump_label: move 'asm goto' support test to Kconfig 2019-06-04 08:02:34 +02:00
dynamic_queue_limits.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-11-15 11:56:19 -08:00
earlycpio.c
error-inject.c error-injection: Add injectable error types 2018-01-12 17:33:38 -08:00
errseq.c errseq: Always report a writeback error once 2018-04-27 08:51:26 -04:00
extable.c
fault-inject.c
fdt.c
fdt_empty_tree.c
fdt_ro.c
fdt_rw.c
fdt_strerror.c
fdt_sw.c
fdt_wip.c
find_bit.c lib: optimize cpumask_next_and() 2018-02-06 18:32:44 -08:00
find_bit_benchmark.c lib/find_bit_benchmark.c: avoid soft lockup in test_find_first_bit() 2018-05-11 17:28:45 -07:00
flex_array.c
flex_proportions.c
gcd.c
gen_crc32table.c lib/crc: Use consistent naming for CRC-32 polynomials 2018-07-27 19:04:33 +08:00
gen_crc64table.c lib: add crc64 calculation routines 2018-08-22 10:52:48 -07:00
genalloc.c lib/genalloc.c: include vmalloc.h 2019-12-05 09:21:05 +01:00
glob.c
globtest.c
hexdump.c
hweight.c
idr.c idr: Fix idr_get_next_ul race with idr_remove 2019-12-17 20:36:02 +01:00
inflate.c
int_sqrt.c fix int_sqrt64() for very large numbers 2019-01-22 21:40:34 +01:00
interval_tree.c
interval_tree_test.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
iomap.c
iomap_copy.c
iommu-helper.c iommu-helper: mark iommu_is_span_boundary as inline 2018-05-09 06:55:44 +02:00
ioremap.c ioremap: Update pgtable free interfaces with addr 2018-07-04 21:37:08 +02:00
iov_iter.c iov_iter: optimize page_copy_sane() 2019-05-22 07:37:45 +02:00
irq_poll.c
irq_regs.c
is_single_threaded.c
jedec_ddr_data.c
kasprintf.c
Kconfig lib/Kconfig: remove 'default n' for tests 2018-08-22 10:52:48 -07:00
Kconfig.debug kmemleak: increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE default to 16K 2019-10-07 18:57:17 +02:00
Kconfig.kasan kasan: only select SLUB_DEBUG with SYSFS=y 2018-07-26 19:38:03 -07:00
Kconfig.kgdb
Kconfig.ubsan lib/ubsan: remove null-pointer checks 2018-08-10 20:19:58 -07:00
kfifo.c Partially revert "kfifo: fix kfifo_alloc() and kfifo_init()" 2020-01-27 14:51:08 +01:00
klist.c scsi: klist: Make it safe to use klists in atomic context 2018-07-02 16:20:23 -04:00
kobject.c Driver core patches for 4.19-rc1 2018-08-18 11:44:53 -07:00
kobject_uevent.c kobject: Don't trigger kobject_uevent(KOBJ_REMOVE) twice. 2019-05-31 06:46:28 -07:00
kstrtox.c
kstrtox.h
lcm.c
libcrc32c.c libcrc32c: Add crc32c_impl function 2018-03-26 15:09:38 +02:00
list_debug.c lib/list_debug.c: print unmangled addresses 2018-04-11 10:28:35 -07:00
list_sort.c
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: Implement an algorithm choice for Wound-Wait mutexes 2018-07-03 09:44:36 +02:00
lockref.c lockref: Add lockref_put_not_zero 2018-04-12 09:41:19 -07:00
logic_pio.c lib: logic_pio: Add logic_pio_unregister_range() 2019-09-06 10:22:19 +02:00
lru_cache.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
lshrdi3.c move libgcc.h to include/linux 2017-12-01 13:09:40 -08:00
Makefile x86/mm/mem_encrypt: Disable all instrumentation for early SME setup 2019-05-25 18:23:45 +02:00
memory-notifier-error-inject.c
memweight.c
muldi3.c move libgcc.h to include/linux 2017-12-01 13:09:40 -08:00
net_utils.c
netdev-notifier-error-inject.c
nlattr.c netlink: Return extack message if attribute validation fails 2018-06-28 16:18:04 +09:00
nmi_backtrace.c printk/nmi: Prevent deadlock when accessing the main log buffer in NMI 2018-07-09 14:10:40 +02:00
nodemask.c
notifier-error-inject.c
notifier-error-inject.h
of-reconfig-notifier-error-inject.c
oid_registry.c 509: fix printing uninitialized stack memory when OID is empty 2017-12-08 15:13:28 +00:00
once.c
parman.c
parser.c
pci_iomap.c PCI: Add SPDX GPL-2.0 when no license was specified 2018-01-26 11:45:16 -06:00
percpu-refcount.c percpu_ref: Update doc to dissuade users from depending on internal RCU grace periods 2018-03-19 10:09:44 -07:00
percpu_counter.c notifier: Remove notifier header file wherever not used 2018-08-30 12:56:40 +02:00
percpu_test.c
plist.c
pm-notifier-error-inject.c
prime_numbers.c
radix-tree.c idr: Fix idr_alloc_u32 on 32-bit systems 2019-12-05 09:19:40 +01:00
random32.c treewide: Switch DEFINE_TIMER callbacks to struct timer_list * 2017-11-21 15:57:05 -08:00
ratelimit.c
rational.c
rbtree.c lib/rbtree,drm/mm: add rbtree_replace_node_cached() 2017-12-14 16:00:48 -08:00
rbtree_test.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
reciprocal_div.c lib: reciprocal_div: implement the improved algorithm on the paper mentioned 2018-07-07 01:45:31 +02:00
refcount.c Linux 4.18-rc5 2018-07-17 09:27:43 +02:00
rhashtable.c rhashtable: Still do rehash when we get EEXIST 2019-04-03 06:26:17 +02:00
sbitmap.c sbitmap: fix improper use of smp_mb__before_atomic() 2019-05-31 06:46:00 -07:00
scatterlist.c lib/scatterlist.c: adjust indentation in __sg_alloc_table 2020-02-24 08:34:52 +01:00
seq_buf.c seq_buf: Make seq_buf_puts() null-terminate the buffer 2019-02-12 19:47:16 +01:00
sg_pool.c
sg_split.c
sha1.c
sha256.c kernel/kexec_file.c: move purgatories sha256 to common code 2018-04-13 17:10:28 -07:00
show_mem.c
siphash.c
smp_processor_id.c lib: do not use print_symbol() 2018-01-05 15:24:00 +01:00
sort.c
stackdepot.c lib/stackdepot.c: fix global out-of-bounds in stack_slabs 2020-02-28 16:38:55 +01:00
stmp_device.c
string.c lib/string.c: implement a basic bcmp 2019-04-17 08:38:45 +02:00
string_helpers.c
strncpy_from_user.c mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions 2019-05-31 06:46:16 -07:00
strnlen_user.c mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions 2019-05-31 06:46:16 -07:00
syscall.c
test-kstrtox.c
test-string_helpers.c
test_bitfield.c bitfield: add tests 2018-06-27 18:58:49 +03:00
test_bitmap.c lib/test_bitmap.c: fix bitmap optimisation tests to report errors correctly 2018-05-18 17:17:12 -07:00
test_bpf.c test_bpf: flag tests that cannot be jited on s390 2018-06-28 23:58:39 +02:00
test_debug_virtual.c lib: fix build failure in CONFIG_DEBUG_VIRTUAL test 2019-01-13 09:51:10 +01:00
test_firmware.c test_firmware: fix a memory leak bug 2019-08-16 10:12:49 +02:00
test_hash.c
test_hexdump.c test_hexdump: use memcpy instead of strncpy 2018-12-08 12:59:06 +01:00
test_ida.c test_ida: Fix lockdep warning 2018-10-15 16:31:29 -04:00
test_kasan.c lib/test_kasan.c: fix memory leak in kmalloc_oob_krealloc_more() 2020-02-11 04:33:57 -08:00
test_kmod.c lib/test_kmod.c: potential double free in error handling 2019-03-13 14:02:32 -07:00
test_list_sort.c lib/test: delete five error messages for failed memory allocations 2017-11-17 16:10:01 -08:00
test_module.c
test_overflow.c lib/test_overflow.c: avoid tainting the kernel and fix wrap size 2019-08-06 19:06:51 +02:00
test_parman.c
test_printf.c Revert "lib/test_printf.c: call wait_for_random_bytes() before plain %p tests" 2018-06-25 13:44:20 +02:00
test_rhashtable.c lib/test_rhashtable: Make test_insert_dup() allocate its hash table dynamically 2019-02-12 19:47:21 +01:00
test_siphash.c
test_sort.c lib/test_sort.c: add module unload support 2018-02-06 18:32:45 -08:00
test_static_key_base.c
test_static_keys.c
test_string.c lib/test_string.c: avoid masking memset16/32/64 failures 2019-08-06 19:06:51 +02:00
test_sysctl.c
test_ubsan.c lib/test_ubsan.c: make test_ubsan_misaligned_access() static 2018-04-11 10:28:35 -07:00
test_user_copy.c treewide: simplify Kconfig dependencies for removed archs 2018-03-26 15:55:57 +02:00
test_uuid.c
textsearch.c lib: textsearch: fix escapes in example code 2019-10-29 09:19:35 +01:00
timerqueue.c timerqueue: Document return values of timerqueue_add/del() 2017-12-29 23:13:10 +01:00
ts_bm.c
ts_fsm.c
ts_kmp.c
ubsan.c ubsan: Fix nasty -Wbuiltin-declaration-mismatch GCC-9 warnings 2019-05-10 17:54:04 +02:00
ubsan.h lib/ubsan: remove returns-nonnull-attribute checks 2018-02-06 18:32:46 -08:00
ucmpdi2.c Add notrace to lib/ucmpdi2.c 2018-04-23 16:39:35 +01:00
ucs2_string.c lib/ucs2_string.c: add MODULE_LICENSE() 2018-06-07 17:34:39 -07:00
usercopy.c Fix misannotated out-of-line _copy_to_user() 2017-12-11 09:35:11 -05:00
uuid.c Documentation: add UUID/GUID to kernel-api 2017-12-11 15:03:08 -07:00
vsprintf.c vsprintf: Fix off-by-one bug in bstr_printf() processing dereferenced pointers 2018-10-05 10:17:15 -04:00
win_minmax.c
xxhash.c