OrangePi_CM5/lib
Mikulas Patocka 51477d3b38 hex2bin: fix access beyond string end
commit e4d8a29997731b3bb14059024b24df9f784288d0 upstream.

If we pass too short string to "hex2bin" (and the string size without
the terminating NUL character is even), "hex2bin" reads one byte after
the terminating NUL character.  This patch fixes it.

Note that hex_to_bin returns -1 on error and hex2bin return -EINVAL on
error - so we can't just return the variable "hi" or "lo" on error.
This inconsistency may be fixed in the next merge window, but for the
purpose of fixing this bug, we just preserve the existing behavior and
return -1 and -EINVAL.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Fixes: b78049831f ("lib: add error checking to hex2bin")
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-05-09 09:04:59 +02:00
..
842 kbuild: trace functions in subdirectories of lib/ 2020-08-10 01:32:59 +09:00
crypto crypto: poly1305 - fix poly1305_core_setkey() declaration 2021-05-14 09:50:13 +02:00
dim lib: Revert use of fallthrough pseudo-keyword in lib/ 2020-08-24 14:17:44 -07:00
fonts Fonts: Replace discarded const qualifier 2020-11-03 10:51:34 +01:00
kunit kunit: make kunit_test_timeout compatible with comment 2022-04-08 14:40:04 +02:00
livepatch Kbuild updates for v5.9 2020-08-09 14:10:26 -07:00
lz4 lz4: fix LZ4_decompress_safe_partial read out of bound 2022-04-13 21:01:08 +02:00
lzo kbuild: trace functions in subdirectories of lib/ 2020-08-10 01:32:59 +09:00
math lib/math/rational.c: fix divide by zero 2021-07-14 16:56:51 +02:00
mpi lib/mpi: Add the return value check of kcalloc() 2022-01-27 10:54:02 +01:00
pldmfw
…
raid6 lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3 2022-04-08 14:40:31 +02:00
reed_solomon kbuild: trace functions in subdirectories of lib/ 2020-08-10 01:32:59 +09:00
vdso
…
xz lib/xz: Validate the value before assigning it to an enum variable 2021-11-18 14:03:58 +01:00
zlib_deflate kbuild: trace functions in subdirectories of lib/ 2020-08-10 01:32:59 +09:00
zlib_dfltcc zlib: move EXPORT_SYMBOL() and MODULE_LICENSE() out of dfltcc_syms.c 2021-01-06 14:56:51 +01:00
zlib_inflate kbuild: trace functions in subdirectories of lib/ 2020-08-10 01:32:59 +09:00
zstd lib: Revert use of fallthrough pseudo-keyword in lib/ 2020-08-24 14:17:44 -07:00
.gitignore
…
Kconfig ARM: 9178/1: fix unmet dependency on BITREVERSE for HAVE_ARCH_BITREVERSE 2022-03-19 13:44:44 +01:00
Kconfig.debug Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH 2021-09-26 14:08:58 +02:00
Kconfig.kasan KASAN: port KASAN Tests to KUnit 2020-10-13 18:38:32 -07:00
Kconfig.kcsan kcsan: Test support for compound instrumentation 2020-08-24 15:09:58 -07:00
Kconfig.kgdb kgdb: Honour the kprobe blocklist when setting breakpoints 2020-09-28 12:14:08 +01:00
Kconfig.ubsan ubsan: introduce CONFIG_UBSAN_LOCAL_BOUNDS for Clang 2020-10-16 11:11:22 -07:00
Makefile selftest/fpu: avoid clang warning 2020-12-11 14:02:14 -08:00
argv_split.c
…
ashldi3.c
…
ashrdi3.c
…
asn1_decoder.c lib: Revert use of fallthrough pseudo-keyword in lib/ 2020-08-24 14:17:44 -07:00
assoc_array.c lib: Revert use of fallthrough pseudo-keyword in lib/ 2020-08-24 14:17:44 -07:00
atomic64.c
…
atomic64_test.c
…
audit.c
…
bcd.c
…
bch.c
…
bitfield_kunit.c lib: kunit: Fix compilation test when using TEST_BIT_FIELD_COMPILE 2020-10-16 13:25:14 -06:00
bitmap.c lib: bitmap: delete duplicated words 2020-10-16 11:11:19 -07:00
bitrev.c
…
bootconfig.c lib/bootconfig: Fix to remove tailing spaces after value 2020-09-21 21:50:09 -04:00
bsearch.c
…
btree.c
…
bucket_locks.c
…
bug.c bug: Remove redundant condition check in report_bug 2021-05-14 09:50:32 +02:00
build_OID_registry
…
bust_spinlocks.c
…
check_signature.c
…
checksum.c unify generic instances of csum_partial_copy_nocheck() 2020-08-20 15:45:14 -04:00
clz_ctz.c
…
clz_tab.c
…
cmdline.c lib: Revert use of fallthrough pseudo-keyword in lib/ 2020-08-24 14:17:44 -07:00
cmpdi2.c
…
compat_audit.c
…
cpu_rmap.c
…
cpumask.c Revert "lib: Restrict cpumask_local_spread to houskeeping CPUs" 2021-02-17 11:02:24 +01:00
crc-ccitt.c
…
crc-itu-t.c
…
crc-t10dif.c
…
crc4.c
…
crc7.c
…
crc8.c
…
crc16.c
…
crc32.c lib/crc32.c: fix trivial typo in preprocessor condition 2020-10-16 11:11:20 -07:00
crc32defs.h
…
crc32test.c lib/crc32test: remove extra local_irq_disable/enable 2020-11-02 12:14:19 -08:00
crc64.c lib/: replace HTTP links with HTTPS ones 2020-08-12 10:58:00 -07:00
ctype.c
…
debug_info.c
…
debug_locks.c locking/lockdep: Improve noinstr vs errors 2021-06-30 08:47:18 -04:00
debugobjects.c debugobjects: Free per CPU pool after CPU unplug 2020-10-01 16:13:54 +02:00
dec_and_lock.c
…
decompress.c
…
decompress_bunzip2.c lib: decompress_bunzip2: delete duplicated words 2020-10-16 11:11:19 -07:00
decompress_inflate.c
…
decompress_unlz4.c lib/decompress_unlz4.c: correctly handle zero-padding around initrds. 2021-07-20 16:05:46 +02:00
decompress_unlzma.c lib/: replace HTTP links with HTTPS ones 2020-08-12 10:58:00 -07:00
decompress_unlzo.c
…
decompress_unxz.c lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression 2021-11-18 14:03:58 +01:00
decompress_unzstd.c lib: decompress_unzstd: Limit output size 2020-09-03 10:13:09 +02:00
devres.c driver core: platform: Document return type of more functions 2020-09-10 18:30:01 +02:00
digsig.c
…
dump_stack.c
…
dynamic_debug.c dyndbg: fix parsing file query without a line-range suffix 2021-05-11 14:47:11 +02:00
dynamic_queue_limits.c lib: dynamic_queue_limits: delete duplicated words + fix typo 2020-10-16 11:11:20 -07:00
earlycpio.c lib: earlycpio: delete duplicated words 2020-10-16 11:11:20 -07:00
errname.c
…
error-inject.c
…
errseq.c
…
extable.c
…
fault-inject-usercopy.c lib, include/linux: add usercopy failure capability 2020-10-16 11:11:22 -07:00
fault-inject.c
…
fdt.c
…
fdt_addresses.c
…
fdt_empty_tree.c
…
fdt_ro.c
…
fdt_rw.c
…
fdt_strerror.c
…
fdt_sw.c
…
fdt_wip.c
…
find_bit.c kernel.h: split out min()/max() et al. helpers 2020-10-16 11:11:19 -07:00
find_bit_benchmark.c
…
flex_proportions.c
…
gen_crc32table.c
…
gen_crc64table.c
…
genalloc.c lib/genalloc: fix the overflow when size is too big 2021-01-12 20:18:16 +01:00
generic-radix-tree.c
…
glob.c lib: Revert use of fallthrough pseudo-keyword in lib/ 2020-08-24 14:17:44 -07:00
globtest.c
…
hexdump.c hex2bin: fix access beyond string end 2022-05-09 09:04:59 +02:00
hweight.c
…
idr.c XArray updates for 5.9 2020-10-20 14:39:37 -07:00
inflate.c
…
interval_tree.c
…
interval_tree_test.c
…
iomap.c iomap: constify ioreadX() iomem argument (as in generic implementation) 2020-08-14 19:56:57 -07:00
iomap_copy.c
…
iommu-helper.c
…
iov_iter.c lib/iov_iter: initialize "flags" in new pipe_buffer 2022-02-23 12:01:06 +01:00
irq_poll.c
…
irq_regs.c
…
is_single_threaded.c
…
kasprintf.c
…
kfifo.c
…
klist.c
…
kobject.c kobject: Drop unneeded conditional in __kobject_del() 2020-09-07 11:24:17 +02:00
kobject_uevent.c kobject_uevent: remove warning in init_uevent_argv() 2021-05-19 10:13:18 +02:00
kstrtox.c lib: vsprintf: Fix handling of number field widths in vsscanf 2021-07-14 16:55:57 +02:00
kstrtox.h lib: vsprintf: Fix handling of number field widths in vsscanf 2021-07-14 16:55:57 +02:00
libcrc32c.c lib: libcrc32c: delete duplicated words 2020-10-16 11:11:19 -07:00
linear_ranges.c
…
list-test.c
…
list_debug.c
…
list_sort.c treewide: Change list_sort to use const pointers 2021-09-30 10:11:04 +02: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 lockdep/selftests: Fix selftests vs PROVE_RAW_LOCK_NESTING 2021-07-14 16:56:10 +02:00
lockref.c
…
logic_pio.c PCI: Fix pci_register_io_range() memory leak 2021-03-17 17:06:25 +01:00
lru_cache.c
…
lshrdi3.c
…
memcat_p.c
…
memory-notifier-error-inject.c
…
memregion.c lib/memregion.c: include memregion.h 2020-09-26 10:33:57 -07:00
memweight.c
…
muldi3.c
…
net_utils.c
…
netdev-notifier-error-inject.c
…
nlattr.c net: fix nla_strcmp to handle more then one trailing null character 2021-05-19 10:13:08 +02:00
nmi_backtrace.c lib: Add backtrace_idle parameter to force backtrace of idle CPUs 2020-08-24 14:24:25 -07:00
nodemask.c
…
notifier-error-inject.c
…
notifier-error-inject.h
…
objagg.c
…
of-reconfig-notifier-error-inject.c
…
oid_registry.c
…
once.c once: Fix panic when module unload 2021-09-03 10:09:21 +02:00
packing.c
…
parman.c
…
parser.c
…
pci_iomap.c
…
percpu-refcount.c percpu_ref: don't refer to ref->data if it isn't allocated 2020-10-09 12:32:06 -06:00
percpu_counter.c lib/percpu_counter.c: use helper macro abs() 2020-10-16 11:11:20 -07:00
percpu_test.c
…
plist.c
…
pm-notifier-error-inject.c
…
radix-tree.c XArray updates for 5.9 2020-10-20 14:39:37 -07:00
random32.c random32: add a selftest for the prandom32 code 2020-10-24 20:21:57 +02:00
ratelimit.c
…
rbtree.c lib/: replace HTTP links with HTTPS ones 2020-08-12 10:58:00 -07:00
rbtree_test.c
…
refcount.c
…
rhashtable.c
…
sbitmap.c
…
scatterlist.c lib/scatterlist: use consistent sg_copy_buffer() return type 2020-10-29 08:55:45 -06:00
seq_buf.c seq_buf: Fix overflow in seq_buf_putmem_hex() 2021-07-19 09:45:00 +02:00
sg_pool.c
…
sg_split.c
…
sha1.c
…
show_mem.c
…
siphash.c siphash: use _unaligned version by default 2021-12-08 09:03:23 +01:00
smp_processor_id.c
…
sort.c
…
stackdepot.c lib: stackdepot: turn depot_lock spinlock to raw_spinlock 2021-05-22 11:40:55 +02:00
stmp_device.c
…
string.c lib/string.c: implement stpcpy 2020-09-26 10:33:57 -07:00
string_helpers.c lib: string_helpers: provide kfree_strarray() 2020-09-30 10:50:30 +02:00
strncpy_from_user.c lib/strncpy_from_user.c: Mask out bytes after NUL terminator. 2020-11-19 11:56:16 -08:00
strnlen_user.c
…
syscall.c lib/syscall: fix syscall registers retrieval on 32-bit platforms 2020-12-03 09:52:44 -08:00
test-kstrtox.c
…
test-string_helpers.c
…
test_bitmap.c test_bitmap: remove user bitmap tests 2020-09-08 22:21:33 -04:00
test_bitops.c lib/test_bitops: do the full test during module init 2020-08-12 10:57:59 -07:00
test_bits.c lib/test_bits.c: add tests of GENMASK 2020-08-12 10:58:00 -07:00
test_blackhole_dev.c
…
test_bpf.c bpf/tests: Do not PASS tests without actually testing the result 2021-09-18 13:40:21 +02:00
test_debug_virtual.c
…
test_firmware.c test_firmware: Test partial read support 2020-10-05 13:37:04 +02:00
test_fpu.c
…
test_free_pages.c mm/page_alloc.c: fix freeing non-compound pages 2020-10-13 18:38:33 -07:00
test_hash.c
…
test_hexdump.c
…
test_hmm.c mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault 2022-01-27 10:54:36 +01:00
test_hmm_uapi.h
…
test_ida.c
…
test_kasan.c kasan: fix unit tests with CONFIG_UBSAN_LOCAL_BOUNDS enabled 2021-05-19 10:13:11 +02:00
test_kasan_module.c KASAN: port KASAN Tests to KUnit 2020-10-13 18:38:32 -07:00
test_kmod.c lib/test: use after free in register_test_dev_kmod() 2022-04-08 14:40:30 +02:00
test_linear_ranges.c
…
test_list_sort.c treewide: Change list_sort to use const pointers 2021-09-30 10:11:04 +02:00
test_lockup.c lib/test_lockup: fix kernel pointer check for separate address spaces 2022-04-08 14:40:35 +02:00
test_memcat_p.c
…
test_meminit.c lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test 2022-01-27 10:54:36 +01:00
test_min_heap.c
…
test_module.c
…
test_objagg.c
…
test_overflow.c
…
test_parman.c
…
test_printf.c
…
test_rhashtable.c rhashtable: fix indentation of a continue statement 2020-09-20 14:10:06 -07:00
test_siphash.c
…
test_sort.c
…
test_stackinit.c lib/test_stackinit: Fix static initializer test 2021-09-18 13:40:37 +02:00
test_static_key_base.c
…
test_static_keys.c
…
test_string.c
…
test_strscpy.c
…
test_sysctl.c lib: test_sysctl: delete duplicated words 2020-10-16 11:11:20 -07:00
test_ubsan.c ubsan: remove CONFIG_UBSAN_OBJECT_SIZE 2022-04-13 21:01:10 +02:00
test_user_copy.c
…
test_uuid.c
…
test_vmalloc.c
…
test_xarray.c XArray: Fix xas_create_range() when multi-order entry present 2022-04-08 14:40:40 +02:00
textsearch.c
…
timerqueue.c
…
ts_bm.c lib/: replace HTTP links with HTTPS ones 2020-08-12 10:58:00 -07:00
ts_fsm.c lib: Revert use of fallthrough pseudo-keyword in lib/ 2020-08-24 14:17:44 -07:00
ts_kmp.c
…
ubsan.c ubsan: implement __ubsan_handle_alignment_assumption 2021-02-17 11:02:24 +01:00
ubsan.h ubsan: implement __ubsan_handle_alignment_assumption 2021-02-17 11:02:24 +01:00
ucmpdi2.c
…
ucs2_string.c
…
usercopy.c lib, uaccess: add failure injection to usercopy functions 2020-10-16 11:11:22 -07:00
uuid.c
…
vsprintf.c lib: vsprintf: Fix handling of number field widths in vsscanf 2021-07-14 16:55:57 +02:00
win_minmax.c
…
xarray.c XArray: Update the LRU list in xas_split() 2022-04-08 14:40:40 +02:00
xxhash.c lib/: replace HTTP links with HTTPS ones 2020-08-12 10:58:00 -07:00