linux/lib
Eric Sandeen 2ea622b887 tools/testing/selftests/sysctl/sysctl.sh: add proc_do_large_bitmap() test case
The kernel has only two users of proc_do_large_bitmap(), the kernel CPU
watchdog, and the ip_local_reserved_ports.  Refer to watchdog_cpumask
and ip_local_reserved_ports in Documentation for further details on
these.  When you input a large buffer into these, when it is larger than
PAGE_SIZE- 1, the input data gets misparsed, and the user get
incorrectly informed that the desired input value was set.  This commit
implements a test which mimics and exploits that use case, it uses a
bitmap size, as in the watchdog case.  The bitmap is used to test the
bitmap proc handler, proc_do_large_bitmap().

The next commit fixes this issue.

[akpm@linux-foundation.org: move proc_do_large_bitmap() export to EOF]
[mcgrof@kernel.org: use new target description for backward compatibility]
[mcgrof@kernel.org: augment test number to 50, ran into issues with bash string comparisons when testing up to 50 cases.]
[mcgrof@kernel.org: introduce and use verify_diff_proc_file() to use diff]
[mcgrof@kernel.org: use mktemp for tmp file]
[mcgrof@kernel.org: merge shell test and C code]
[mcgrof@kernel.org: commit log love]
[mcgrof@kernel.org: export proc_do_large_bitmap() to allow for the test
[mcgrof@kernel.org: check for the return value when writing to the proc file]
Link: http://lkml.kernel.org/r/20190320222831.8243-6-mcgrof@kernel.org
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-05-14 19:52:51 -07:00
..
842
fonts Fonts: New Terminus large console font 2018-12-19 10:42:08 +01:00
livepatch livepatch: Proper error handling in the shadow variables selftest 2019-02-06 11:01:57 +01:00
lz4 lib/lz4: update LZ4 decompressor module 2018-10-31 08:54:14 -07:00
lzo lib/lzo: fix bugs for very short or empty input 2019-04-05 16:02:30 -10:00
math lib/math: move int_pow() from pwm_bl.c for wider use 2019-05-14 19:52:49 -07:00
mpi lib/mpi: remove redundant variable esign 2018-08-07 17:51:39 +08:00
raid6 ARM updates for 5.1-rc1 2019-03-15 14:37:46 -07:00
reed_solomon reed_solomon: Fix kernel-doc 2018-07-10 15:00:52 -06: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/inflate.c: remove fall through warnings 2018-10-31 08:54:13 -07:00
zstd lib: zstd: Mark expected switch fall-throughs 2019-04-08 18:39:18 -05:00
.gitignore lib: add crc64 calculation routines 2018-08-22 10:52:48 -07:00
Kconfig lib: Move mathematic helpers to separate folder 2019-05-14 19:52:49 -07:00
Kconfig.debug init: introduce DEBUG_MISC option 2019-05-14 19:52:50 -07:00
Kconfig.kasan kasan: remove use after scope bugs detection. 2019-03-05 21:07:13 -08:00
Kconfig.kgdb
Kconfig.ubsan lib/ubsan: default UBSAN_ALIGNMENT to not set 2019-03-07 18:32:02 -08:00
Makefile lib: Move mathematic helpers to separate folder 2019-05-14 19:52:49 -07:00
argv_split.c
ashldi3.c
ashrdi3.c
asn1_decoder.c ASN.1: mark expected switch fall-through 2019-04-08 18:39:28 -05:00
assoc_array.c lib/assoc_array.c: mark expected switch fall-through 2019-03-07 18:32:00 -08: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: rework bitmap_parselist 2019-05-14 19:52:49 -07:00
bitrev.c
bsearch.c kprobes: Prohibit probing on bsearch() 2019-02-13 08:16:41 +01:00
btree.c
bucket_locks.c ila: make lockdep happy again 2018-08-16 12:14:42 -07:00
bug.c
build_OID_registry
bust_spinlocks.c s390: use common bust_spinlocks() 2018-11-30 07:22:05 +01:00
chacha.c crypto: chacha - add XChaCha12 support 2018-11-20 14:26:55 +08:00
check_signature.c
checksum.c
clz_ctz.c
clz_tab.c
cmdline.c lib/cmdline.c: mark expected switch fall-throughs 2019-04-08 18:39:23 -05:00
cmpdi2.c
compat_audit.c
cpu_rmap.c
cpumask.c treewide: add checks for the return value of memblock_alloc*() 2019-03-12 10:04:02 -07:00
crc-ccitt.c
crc-itu-t.c
crc-t10dif.c crypto: shash - remove shash_desc::flags 2019-04-25 15:38:12 +08:00
crc4.c
crc7.c
crc8.c
crc16.c
crc32.c lib/crc32.c: mark crc32_le_base/__crc32c_le_base aliases as __pure 2019-02-15 19:50:07 +01: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: Make global debug_locks* variables read-mostly 2018-10-19 07:53:18 +02:00
debugobjects.c debugobjects: call debug_objects_mem_init eariler 2018-12-28 12:11:45 -08:00
dec_and_lock.c
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: always use dev_name() in devm_ioremap_resource() 2019-01-31 19:28:40 +01:00
digsig.c crypto: shash - remove shash_desc::flags 2019-04-25 15:38:12 +08:00
dump_stack.c
dynamic_debug.c RDMA/core: Introduce RDMA subsystem ibdev_* print functions 2019-05-01 12:29:28 -04:00
dynamic_queue_limits.c
earlycpio.c
error-inject.c treewide: Switch printk users from %pf and %pF to %ps and %pS, respectively 2019-04-09 14:19:06 +02:00
errseq.c
extable.c
fault-inject.c fault-inject: Simplify stacktrace retrieval 2019-04-29 12:37:50 +02: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
find_bit_benchmark.c lib/find_bit_benchmark.c: align test_find_next_and_bit with others 2019-01-04 13:13:46 -08:00
flex_proportions.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: don't depend on linux headers being installed. 2018-12-29 11:36:44 -08:00
genalloc.c lib/genalloc.c: include vmalloc.h 2019-01-05 13:54:53 -08:00
generic-radix-tree.c generic radix trees 2019-03-12 10:04:02 -07:00
glob.c
globtest.c
hexdump.c
hweight.c
idr.c radix tree: Remove radix_tree_update_node_t 2018-10-21 10:46:44 -04:00
inflate.c
interval_tree.c
interval_tree_test.c
iomap.c iomap: introduce io{read|write}64_{lo_hi|hi_lo} 2019-01-22 13:39:59 +01:00
iomap_copy.c
iommu-helper.c
ioremap.c lib/ioremap: ensure break-before-make is used for huge p4d mappings 2018-12-28 12:11:50 -08:00
iov_iter.c mm/gup: change GUP fast to use flags rather than a write 'bool' 2019-05-14 09:47:46 -07:00
irq_poll.c lib/irq_poll: Support schedules in non-interrupt contexts 2019-02-19 20:52:19 -07:00
irq_regs.c
is_single_threaded.c
jedec_ddr_data.c
kasprintf.c
kfifo.c
klist.c scsi: klist: Make it safe to use klists in atomic context 2018-07-02 16:20:23 -04:00
kobject.c kobject: clean up the kobject add documentation a bit more 2019-05-03 08:26:51 +02:00
kobject_uevent.c kobject: Don't trigger kobject_uevent(KOBJ_REMOVE) twice. 2019-04-01 07:37:12 +02:00
kstrtox.c lib/kstrtox.c: delete unnecessary casts 2018-10-31 08:54:13 -07:00
kstrtox.h
libcrc32c.c crypto: shash - remove shash_desc::flags 2019-04-25 15:38:12 +08:00
list_debug.c
list_sort.c lib/list_sort: optimize number of calls to comparison function 2019-05-14 19:52:49 -07: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: Make it easy to detect whether or not inside a selftest 2019-02-28 07:55:43 +01:00
lockref.c
logic_pio.c
lru_cache.c
lshrdi3.c
memcat_p.c lib: Fix ia64 bootloader linkage 2018-10-16 13:45:44 +02:00
memory-notifier-error-inject.c
memweight.c
muldi3.c
net_utils.c
netdev-notifier-error-inject.c
nlattr.c netlink: add validation of NLA_F_NESTED flag 2019-05-04 01:27:11 -04: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
objagg.c lib: objagg: fix handling of object with 0 users when assembling hints 2019-02-14 12:41:54 -05:00
of-reconfig-notifier-error-inject.c
oid_registry.c
once.c
packing.c lib: Add support for generic packing operations 2019-05-03 10:49:17 -04:00
parman.c
parser.c lib/parser.c: switch match_number() over to use match_strdup() 2018-10-31 08:54:12 -07:00
pci_iomap.c
percpu-refcount.c treewide: Switch printk users from %pf and %pF to %ps and %pS, respectively 2019-04-09 14:19:06 +02: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 lib/plist: rename DEBUG_PI_LIST to DEBUG_PLIST 2019-05-14 19:52:49 -07:00
pm-notifier-error-inject.c
radix-tree.c radix tree: Don't return retry entries from lookup 2018-12-06 08:26:16 -05:00
random32.c
ratelimit.c
rbtree.c
rbtree_test.c
refcount.c refcount_t: Add ACQUIRE ordering on success for dec(sub)_and_test() variants 2019-02-04 09:03:31 +01:00
rhashtable.c rhashtable: use BIT(0) for locking. 2019-04-12 17:34:45 -07:00
sbitmap.c sbitmap: order READ/WRITE freed instance and setting clear bit 2019-03-25 13:05:47 -06:00
scatterlist.c lib/scatterlist: Provide a DMA page iterator 2019-02-11 15:02:33 -07:00
seq_buf.c seq_buf: Use size_t for len in seq_buf_puts() 2018-12-22 08:21:03 -05:00
sg_pool.c lib/sg_pool.c: remove unnecessary null check when freeing object 2018-10-31 08:54:13 -07:00
sg_split.c
sha1.c
sha256.c
show_mem.c lib/show_mem.c: drop pgdat_resize_lock in show_mem() 2018-12-28 12:11:49 -08:00
siphash.c lib/siphash.c: mark expected switch fall-throughs 2019-04-25 19:47:24 +02:00
smp_processor_id.c kprobes: Prohibit probing on preemption checking debug functions 2019-02-13 08:16:40 +01:00
sort.c lib/sort: avoid indirect calls to built-in swap 2019-05-14 19:52:49 -07:00
stackdepot.c lib/stackdepot: Remove obsolete functions 2019-04-29 12:37:57 +02:00
stmp_device.c
string.c lib/string: Add strscpy_pad() function 2019-04-08 16:44:21 -06:00
string_helpers.c
strncpy_from_user.c mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions 2019-04-24 12:19:45 +02:00
strnlen_user.c mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions 2019-04-24 12:19:45 +02:00
syscall.c syscalls: Remove start and number from syscall_get_arguments() args 2019-04-05 09:26:43 -04: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: add tests for bitmap_parselist_user() 2019-05-14 19:52:49 -07:00
test_bpf.c bpf: test_bpf: turn off preemption in function __run_once 2019-02-25 22:18:07 +01:00
test_debug_virtual.c lib: fix build failure in CONFIG_DEBUG_VIRTUAL test 2018-12-17 22:12:30 +11:00
test_firmware.c lib/test_firmware.c: remove some dead code 2019-03-07 18:32:00 -08:00
test_hash.c
test_hexdump.c test_hexdump: use memcpy instead of strncpy 2018-11-30 12:13:15 -08:00
test_ida.c test_ida: Fix lockdep warning 2018-10-15 16:31:29 -04:00
test_kasan.c kasan: remove use after scope bugs detection. 2019-03-05 21:07:13 -08:00
test_kmod.c lib/test_kmod.c: potential double free in error handling 2019-02-01 15:46:23 -08:00
test_list_sort.c
test_memcat_p.c lib: Fix ia64 bootloader linkage 2018-10-16 13:45:44 +02:00
test_module.c
test_objagg.c test_objagg: Uninitialized variable in error handling 2019-02-13 22:13:29 -08:00
test_overflow.c test_overflow: Add shift overflow tests 2018-08-08 09:47:26 -06:00
test_parman.c
test_printf.c Printk changes for 5.2 2019-05-07 09:18:12 -07:00
test_rhashtable.c rhashtable: move dereference inside rht_ptr() 2019-04-12 17:34:45 -07:00
test_siphash.c
test_sort.c
test_stackinit.c lib: Introduce test_stackinit module 2019-03-04 09:29:52 -08:00
test_static_key_base.c
test_static_keys.c
test_string.c
test_strscpy.c lib: Add test module for strscpy_pad 2019-04-08 16:44:21 -06:00
test_sysctl.c tools/testing/selftests/sysctl/sysctl.sh: add proc_do_large_bitmap() test case 2019-05-14 19:52:51 -07:00
test_ubsan.c lib/test_ubsan.c: VLA no longer used in kernel 2019-03-07 18:32:00 -08:00
test_user_copy.c
test_uuid.c
test_vmalloc.c lib/test_vmalloc.c:test_func(): eliminate local `ret' 2019-05-14 19:52:49 -07:00
test_xarray.c XArray: Fix xa_reserve for 2-byte aligned entries 2019-02-21 17:54:44 -05:00
textsearch.c
timerqueue.c
ts_bm.c
ts_fsm.c
ts_kmp.c
ubsan.c Merge branch 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-06 11:39:17 -07:00
ubsan.h ubsan: Remove vla bound checks. 2019-05-06 11:12:09 -07:00
ucmpdi2.c
ucs2_string.c
usercopy.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
uuid.c
vsprintf.c vsprintf: Do not break early boot with probing addresses 2019-05-10 16:17:26 +02:00
win_minmax.c
xarray.c XArray: Fix xa_reserve for 2-byte aligned entries 2019-02-21 17:54:44 -05:00
xxhash.c