Kees Cook
f6a291e73a
UPSTREAM: lib: Introduce test_stackinit module
Upstream commit 50ceaa95ea09 ("lib: Introduce test_stackinit module").
Adds test for stack initialization coverage. We have several build options
that control the level of stack variable initialization. This test lets us
visualize which options cover which cases, and provide tests for some of
the pathological padding conditions the compiler will sometimes fail to
initialize.
All options pass the explicit initialization cases and the partial
initializers (even with padding):
test_stackinit: u8_zero ok
test_stackinit: u16_zero ok
test_stackinit: u32_zero ok
test_stackinit: u64_zero ok
test_stackinit: char_array_zero ok
test_stackinit: small_hole_zero ok
test_stackinit: big_hole_zero ok
test_stackinit: trailing_hole_zero ok
test_stackinit: packed_zero ok
test_stackinit: small_hole_dynamic_partial ok
test_stackinit: big_hole_dynamic_partial ok
test_stackinit: trailing_hole_dynamic_partial ok
test_stackinit: packed_dynamic_partial ok
test_stackinit: small_hole_static_partial ok
test_stackinit: big_hole_static_partial ok
test_stackinit: trailing_hole_static_partial ok
test_stackinit: packed_static_partial ok
test_stackinit: packed_static_all ok
test_stackinit: packed_dynamic_all ok
test_stackinit: packed_runtime_all ok
The results of the other tests (which contain no explicit initialization),
change based on the build's configured compiler instrumentation.
No options:
test_stackinit: small_hole_static_all FAIL (uninit bytes: 3)
test_stackinit: big_hole_static_all FAIL (uninit bytes: 61)
test_stackinit: trailing_hole_static_all FAIL (uninit bytes: 7)
test_stackinit: small_hole_dynamic_all FAIL (uninit bytes: 3)
test_stackinit: big_hole_dynamic_all FAIL (uninit bytes: 61)
test_stackinit: trailing_hole_dynamic_all FAIL (uninit bytes: 7)
test_stackinit: small_hole_runtime_partial FAIL (uninit bytes: 23)
test_stackinit: big_hole_runtime_partial FAIL (uninit bytes: 127)
test_stackinit: trailing_hole_runtime_partial FAIL (uninit bytes: 24)
test_stackinit: packed_runtime_partial FAIL (uninit bytes: 24)
test_stackinit: small_hole_runtime_all FAIL (uninit bytes: 3)
test_stackinit: big_hole_runtime_all FAIL (uninit bytes: 61)
test_stackinit: trailing_hole_runtime_all FAIL (uninit bytes: 7)
test_stackinit: u8_none FAIL (uninit bytes: 1)
test_stackinit: u16_none FAIL (uninit bytes: 2)
test_stackinit: u32_none FAIL (uninit bytes: 4)
test_stackinit: u64_none FAIL (uninit bytes: 8)
test_stackinit: char_array_none FAIL (uninit bytes: 16)
test_stackinit: switch_1_none FAIL (uninit bytes: 8)
test_stackinit: switch_2_none FAIL (uninit bytes: 8)
test_stackinit: small_hole_none FAIL (uninit bytes: 24)
test_stackinit: big_hole_none FAIL (uninit bytes: 128)
test_stackinit: trailing_hole_none FAIL (uninit bytes: 32)
test_stackinit: packed_none FAIL (uninit bytes: 32)
test_stackinit: user FAIL (uninit bytes: 32)
test_stackinit: failures: 25
CONFIG_GCC_PLUGIN_STRUCTLEAK_USER=y
This only tries to initialize structs with __user markings, so
only the difference from above is now the "user" test passes:
test_stackinit: small_hole_static_all FAIL (uninit bytes: 3)
test_stackinit: big_hole_static_all FAIL (uninit bytes: 61)
test_stackinit: trailing_hole_static_all FAIL (uninit bytes: 7)
test_stackinit: small_hole_dynamic_all FAIL (uninit bytes: 3)
test_stackinit: big_hole_dynamic_all FAIL (uninit bytes: 61)
test_stackinit: trailing_hole_dynamic_all FAIL (uninit bytes: 7)
test_stackinit: small_hole_runtime_partial FAIL (uninit bytes: 23)
test_stackinit: big_hole_runtime_partial FAIL (uninit bytes: 127)
test_stackinit: trailing_hole_runtime_partial FAIL (uninit bytes: 24)
test_stackinit: packed_runtime_partial FAIL (uninit bytes: 24)
test_stackinit: small_hole_runtime_all FAIL (uninit bytes: 3)
test_stackinit: big_hole_runtime_all FAIL (uninit bytes: 61)
test_stackinit: trailing_hole_runtime_all FAIL (uninit bytes: 7)
test_stackinit: u8_none FAIL (uninit bytes: 1)
test_stackinit: u16_none FAIL (uninit bytes: 2)
test_stackinit: u32_none FAIL (uninit bytes: 4)
test_stackinit: u64_none FAIL (uninit bytes: 8)
test_stackinit: char_array_none FAIL (uninit bytes: 16)
test_stackinit: switch_1_none FAIL (uninit bytes: 8)
test_stackinit: switch_2_none FAIL (uninit bytes: 8)
test_stackinit: small_hole_none FAIL (uninit bytes: 24)
test_stackinit: big_hole_none FAIL (uninit bytes: 128)
test_stackinit: trailing_hole_none FAIL (uninit bytes: 32)
test_stackinit: packed_none FAIL (uninit bytes: 32)
test_stackinit: user ok
test_stackinit: failures: 24
CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
This initializes all structures passed by reference (scalars and strings
remain uninitialized):
test_stackinit: small_hole_static_all ok
test_stackinit: big_hole_static_all ok
test_stackinit: trailing_hole_static_all ok
test_stackinit: small_hole_dynamic_all ok
test_stackinit: big_hole_dynamic_all ok
test_stackinit: trailing_hole_dynamic_all ok
test_stackinit: small_hole_runtime_partial ok
test_stackinit: big_hole_runtime_partial ok
test_stackinit: trailing_hole_runtime_partial ok
test_stackinit: packed_runtime_partial ok
test_stackinit: small_hole_runtime_all ok
test_stackinit: big_hole_runtime_all ok
test_stackinit: trailing_hole_runtime_all ok
test_stackinit: u8_none FAIL (uninit bytes: 1)
test_stackinit: u16_none FAIL (uninit bytes: 2)
test_stackinit: u32_none FAIL (uninit bytes: 4)
test_stackinit: u64_none FAIL (uninit bytes: 8)
test_stackinit: char_array_none FAIL (uninit bytes: 16)
test_stackinit: switch_1_none FAIL (uninit bytes: 8)
test_stackinit: switch_2_none FAIL (uninit bytes: 8)
test_stackinit: small_hole_none ok
test_stackinit: big_hole_none ok
test_stackinit: trailing_hole_none ok
test_stackinit: packed_none ok
test_stackinit: user ok
test_stackinit: failures: 7
CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y
This initializes all variables, so it matches above with the scalars
and arrays included:
test_stackinit: small_hole_static_all ok
test_stackinit: big_hole_static_all ok
test_stackinit: trailing_hole_static_all ok
test_stackinit: small_hole_dynamic_all ok
test_stackinit: big_hole_dynamic_all ok
test_stackinit: trailing_hole_dynamic_all ok
test_stackinit: small_hole_runtime_partial ok
test_stackinit: big_hole_runtime_partial ok
test_stackinit: trailing_hole_runtime_partial ok
test_stackinit: packed_runtime_partial ok
test_stackinit: small_hole_runtime_all ok
test_stackinit: big_hole_runtime_all ok
test_stackinit: trailing_hole_runtime_all ok
test_stackinit: u8_none ok
test_stackinit: u16_none ok
test_stackinit: u32_none ok
test_stackinit: u64_none ok
test_stackinit: char_array_none ok
test_stackinit: switch_1_none ok
test_stackinit: switch_2_none ok
test_stackinit: small_hole_none ok
test_stackinit: big_hole_none ok
test_stackinit: trailing_hole_none ok
test_stackinit: packed_none ok
test_stackinit: user ok
test_stackinit: all tests passed!
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Change-Id: I7f97a6dc5887957f8a356bcf2a53e117cbab6bdf
Signed-off-by: Alexander Potapenko <glider@google.com>
|
2020-02-13 16:22:08 +01:00 |
| .. |
|
842
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
fonts
|
lib/fonts: convert comments to utf-8
|
2018-08-23 18:48:43 -07:00 |
|
lz4
|
lib/lz4: make arrays static const, reduces object code size
|
2017-10-03 17:54:25 -07:00 |
|
lzo
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
lib/zlib_inflate/inftrees.c: fix potential buffer overflow
|
2017-05-08 17:15:12 -07:00 |
|
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
|
lib/atomic64_test.c: add a test that atomic64_inc_not_zero() returns an int
|
2017-07-14 15:05:13 -07:00 |
|
audit.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
bcd.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
chacha.c
|
FROMGIT: crypto: chacha - add XChaCha12 support
|
2018-12-05 09:48:14 -08:00 |
|
check_signature.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
checksum.c
|
ipv4: Update parameters for csum_tcpudp_magic to their original types
|
2016-03-13 23:55:13 -04:00 |
|
clz_ctz.c
|
|
|
|
clz_tab.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
cmdline.c
|
lib/cmdline.c: remove meaningless comment
|
2017-09-08 18:26:49 -07:00 |
|
cmpdi2.c
|
move libgcc.h to include/linux
|
2017-12-01 13:09:40 -08:00 |
|
compat_audit.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
docs: clean up and add rest of CRC functions to kernel-api.rst
|
2017-09-26 15:01:20 -06:00 |
|
crc7.c
|
|
|
|
crc8.c
|
docs: clean up and add rest of CRC functions to kernel-api.rst
|
2017-09-26 15:01:20 -06:00 |
|
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
|
lib: add module support to crc32 tests
|
2017-02-24 17:46:57 -08:00 |
|
crc64.c
|
lib: add crc64 calculation routines
|
2018-08-22 10:52:48 -07:00 |
|
ctype.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
debug_info.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
decompress_bunzip2.c
|
lib: Use existing define with polynomial
|
2018-07-27 19:16:38 +08:00 |
|
decompress_inflate.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
decompress_unlz4.c
|
lib/decompress_unlz4: change module to work with new LZ4 module version
|
2017-02-24 17:46:57 -08:00 |
|
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
|
lib/digsig: fix dereference of NULL user_key_payload
|
2017-10-12 17:16:40 +01:00 |
|
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
|
UPSTREAM: dynamic_debug: allow to work if debugfs is disabled
|
2020-02-12 14:32:34 -08: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
|
lib/cpio: Make find_cpio_data()'s offset arg optional
|
2016-06-08 11:04:19 +02:00 |
|
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
|
lib/extable.c: use bsearch() library function in search_extable()
|
2017-07-10 16:32:35 -07:00 |
|
fault-inject.c
|
fault-inject: fix wrong should_fail() decision in task context
|
2017-08-10 15:54:06 -07:00 |
|
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
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
gcd.c
|
lib/gcd: add kernel-doc notation
|
2017-10-07 10:45:14 -06:00 |
|
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
|
lib: add module support to glob tests
|
2017-02-24 17:46:57 -08:00 |
|
globtest.c
|
lib: add module support to glob tests
|
2017-02-24 17:46:57 -08:00 |
|
hexdump.c
|
lib/hexdump.c: return -EINVAL in case of error in hex2bin()
|
2017-09-08 18:26:49 -07:00 |
|
hweight.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
idr.c
|
idr: Fix idr_get_next_ul race with idr_remove
|
2019-12-17 20:36:02 +01:00 |
|
inflate.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
irq_regs.c
|
|
|
|
is_single_threaded.c
|
sched/headers: Prepare to move 'init_task' and 'init_thread_union' from <linux/sched.h> to <linux/sched/task.h>
|
2017-03-02 08:42:38 +01:00 |
|
jedec_ddr_data.c
|
|
|
|
kasprintf.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
Kconfig
|
lib/Kconfig: remove 'default n' for tests
|
2018-08-22 10:52:48 -07:00 |
|
Kconfig.debug
|
UPSTREAM: lib: Introduce test_stackinit module
|
2020-02-13 16:22:08 +01:00 |
|
Kconfig.kasan
|
BACKPORT: kasan: remove use after scope bugs detection.
|
2019-09-24 17:44:15 -07:00 |
|
Kconfig.kgdb
|
lib: update location of kgdb documentation
|
2017-05-16 08:44:22 -03:00 |
|
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
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
kstrtox.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
llist.c
|
locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE()
|
2017-10-25 11:01:08 +02:00 |
|
locking-selftest-hardirq.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-mutex.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-rlock-hardirq.h
|
|
|
|
locking-selftest-rlock-softirq.h
|
|
|
|
locking-selftest-rlock.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-rsem.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-rtmutex.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-softirq.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-spin-hardirq.h
|
|
|
|
locking-selftest-spin-softirq.h
|
|
|
|
locking-selftest-spin.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-wlock-hardirq.h
|
|
|
|
locking-selftest-wlock-softirq.h
|
|
|
|
locking-selftest-wlock.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-wsem.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
UPSTREAM: lib: Introduce test_stackinit module
|
2020-02-13 16:22:08 +01:00 |
|
memory-notifier-error-inject.c
|
|
|
|
memweight.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
muldi3.c
|
move libgcc.h to include/linux
|
2017-12-01 13:09:40 -08:00 |
|
net_utils.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
notifier-error-inject.c
|
|
|
|
notifier-error-inject.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2017-11-04 09:26:51 +09:00 |
|
parman.c
|
lib: Introduce priority array area manager
|
2017-02-03 16:35:42 -05:00 |
|
parser.c
|
parser: add u64 number parser
|
2016-12-06 10:17:03 +02:00 |
|
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
|
ANDROID: lib/plist: Export symbol plist_add
|
2020-01-23 15:37:21 -08:00 |
|
pm-notifier-error-inject.c
|
|
|
|
prime_numbers.c
|
lib/prime_numbers: Suppress warn on kmalloc failure
|
2017-01-23 09:17:12 +01:00 |
|
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
|
lib/ratelimit.c: use deferred printk() version
|
2017-10-03 17:54:26 -07:00 |
|
rational.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
|
2019-07-26 09:14:23 +02: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
|
lib: scatterlist: move SG pool code from SCSI driver to lib/sg_pool.c
|
2016-04-15 16:53:14 -04:00 |
|
sg_split.c
|
|
|
|
sha1.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
sha256.c
|
kernel/kexec_file.c: move purgatories sha256 to common code
|
2018-04-13 17:10:28 -07:00 |
|
show_mem.c
|
lib/show_mem.c: teach show_mem to work with the given nodemask
|
2017-02-22 16:41:30 -08:00 |
|
siphash.c
|
siphash: implement HalfSipHash1-3 for hash tables
|
2017-01-09 13:58:57 -05:00 |
|
smp_processor_id.c
|
lib: do not use print_symbol()
|
2018-01-05 15:24:00 +01:00 |
|
sort.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
stackdepot.c
|
lib/stackdepot.c: use a non-instrumented version of memcmp()
|
2018-02-06 18:32:44 -08:00 |
|
stmp_device.c
|
|
|
|
string.c
|
lib/string.c: implement a basic bcmp
|
2019-04-17 08:38:45 +02:00 |
|
string_helpers.c
|
mm: treewide: remove GFP_TEMPORARY allocation flag
|
2017-09-13 18:53:16 -07:00 |
|
strncpy_from_user.c
|
BACKPORT: lib: untag user pointers in strn*_user
|
2019-10-07 15:27:40 -04:00 |
|
strnlen_user.c
|
BACKPORT: lib: untag user pointers in strn*_user
|
2019-10-07 15:27:40 -04:00 |
|
syscall.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
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
|
lib/test_hash.c: fix warning in preprocessor symbol evaluation
|
2016-09-01 17:52:01 -07:00 |
|
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
|
This is the 4.19.103 stable release
|
2020-02-11 15:05:03 -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_meminit.c
|
UPSTREAM: lib/test_meminit.c: add bulk alloc/free tests
|
2020-01-24 13:46:13 +01: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
|
lib: fix spelling mistake: "actualy" -> "actually"
|
2017-02-26 11:03:38 -05:00 |
|
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
|
siphash: implement HalfSipHash1-3 for hash tables
|
2017-01-09 13:58:57 -05:00 |
|
test_sort.c
|
lib/test_sort.c: add module unload support
|
2018-02-06 18:32:45 -08:00 |
|
test_stackinit.c
|
UPSTREAM: lib: Introduce test_stackinit module
|
2020-02-13 16:22:08 +01:00 |
|
test_static_key_base.c
|
|
|
|
test_static_keys.c
|
locking/static_keys: Avoid nested functions
|
2016-02-09 10:27:29 +01:00 |
|
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_sysctl: test against int proc_dointvec() array support
|
2017-07-12 16:26:00 -07:00 |
|
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
|
uuid: fix incorrect uuid_equal conversion in test_uuid_test
|
2017-07-21 09:38:30 +02:00 |
|
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
|
textsearch: fix typos in library helpers
|
2017-10-22 03:14:07 +01:00 |
|
ts_kmp.c
|
textsearch: fix typos in library helpers
|
2017-10-22 03:14:07 +01:00 |
|
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
|
FROMLIST: vsprintf: Inline call to ptr_to_hashval
|
2019-11-18 14:10:46 -05:00 |
|
win_minmax.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
xxhash.c
|
lib: Add xxhash module
|
2017-08-15 09:02:07 -07:00 |