linux-uconsole/lib
Christophe Leroy 677b2aa3be lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
commit aeb8724653 upstream.

All mapping iterator logic is based on the assumption that sg->offset
is always lower than PAGE_SIZE.

But there are situations where sg->offset is such that the SG item
is on the second page. In that case sg_copy_to_buffer() fails
properly copying the data into the buffer. One of the reason is
that the data will be outside the kmapped area used to access that
data.

This patch fixes the issue by adjusting the mapping iterator
offset and pgoffset fields such that offset is always lower than
PAGE_SIZE.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Fixes: 4225fc8555 ("lib/scatterlist: use page iterator in the mapping iterator")
Cc: stable@vger.kernel.org
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-26 09:14:23 +02: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 ARM: 8833/1: Ensure that NEON code always compiles with Clang 2019-04-05 22:33:08 +02: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
.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
ashrdi3.c
asn1_decoder.c
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: drop unnecessary 0 check for u32 array operations 2018-08-22 10:52:48 -07:00
bitrev.c
bsearch.c kprobes: Prohibit probing on bsearch() 2019-04-05 22:33:08 +02: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
chacha20.c
check_signature.c
checksum.c
clz_ctz.c
clz_tab.c
cmdline.c
cmpdi2.c
compat_audit.c
cordic.c
cpu_rmap.c
cpumask.c
crc-ccitt.c
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: Add devm_of_iomap() 2018-07-23 15:22:39 +10:00
digsig.c
div64.c lib/div64.c: off by one in shift 2019-04-20 09:16:05 +02:00
dump_stack.c
dynamic_debug.c jump_label: move 'asm goto' support test to Kconfig 2019-06-04 08:02:34 +02:00
dynamic_queue_limits.c
earlycpio.c
error-inject.c
errseq.c
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
find_bit_benchmark.c
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
glob.c
globtest.c
hexdump.c
hweight.c
idr.c ida: Change ida_get_new_above to return the id 2018-08-21 23:54:21 -04: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
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 lib/Kconfig.debug: fix build error without CONFIG_BLOCK 2019-05-02 09:58:53 +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 treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07: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
list_debug.c
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
logic_pio.c
lru_cache.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
lshrdi3.c
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
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
once.c
parman.c
parser.c
pci_iomap.c
percpu-refcount.c
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 ida: Remove old API 2018-08-21 23:54:21 -04:00
random32.c
ratelimit.c
rational.c
rbtree.c
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
sg_split.c
sha1.c
sha256.c
show_mem.c
siphash.c
smp_processor_id.c
sort.c
stackdepot.c
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
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: Use correct snprintf() limit 2019-06-11 12:20:54 +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
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
test_module.c
test_overflow.c test_overflow: Add shift overflow tests 2018-08-08 09:47:26 -06: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
test_static_key_base.c
test_static_keys.c
test_string.c
test_sysctl.c
test_ubsan.c
test_user_copy.c
test_uuid.c
textsearch.c
timerqueue.c
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
ucmpdi2.c
ucs2_string.c lib/ucs2_string.c: add MODULE_LICENSE() 2018-06-07 17:34:39 -07:00
usercopy.c
uuid.c
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