https://github.com/torvalds/linux
Revision 02608e02fbec04fccf2eb0cc8d8082f65c0a4286 authored by Laura Abbott on 21 December 2016, 20:32:54 UTC, committed by Herbert Xu on 27 December 2016, 09:32:11 UTC
Christopher Covington reported a crash on aarch64 on recent Fedora
kernels:

kernel BUG at ./include/linux/scatterlist.h:140!
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
Modules linked in:
CPU: 2 PID: 752 Comm: cryptomgr_test Not tainted 4.9.0-11815-ge93b1cc #162
Hardware name: linux,dummy-virt (DT)
task: ffff80007c650080 task.stack: ffff800008910000
PC is at sg_init_one+0xa0/0xb8
LR is at sg_init_one+0x24/0xb8
...
[<ffff000008398db8>] sg_init_one+0xa0/0xb8
[<ffff000008350a44>] test_acomp+0x10c/0x438
[<ffff000008350e20>] alg_test_comp+0xb0/0x118
[<ffff00000834f28c>] alg_test+0x17c/0x2f0
[<ffff00000834c6a4>] cryptomgr_test+0x44/0x50
[<ffff0000080dac70>] kthread+0xf8/0x128
[<ffff000008082ec0>] ret_from_fork+0x10/0x50

The test vectors used for input are part of the kernel image. These
inputs are passed as a buffer to sg_init_one which eventually blows up
with BUG_ON(!virt_addr_valid(buf)). On arm64, virt_addr_valid returns
false for the kernel image since virt_to_page will not return the
correct page. Fix this by copying the input vectors to heap buffer
before setting up the scatterlist.

Reported-by: Christopher Covington <cov@codeaurora.org>
Fixes: d7db7a882deb ("crypto: acomp - update testmgr with support for acomp")
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
1 parent 7ce7d89
History
Tip revision: 02608e02fbec04fccf2eb0cc8d8082f65c0a4286 authored by Laura Abbott on 21 December 2016, 20:32:54 UTC
crypto: testmgr - Use heap buffer for acomp test input
Tip revision: 02608e0
File Mode Size
9p
adfs
affs
afs
autofs4
befs
bfs
btrfs
cachefiles
ceph
cifs
coda
configfs
cramfs
crypto
debugfs
devpts
dlm
ecryptfs
efivarfs
efs
exofs
exportfs
ext2
ext4
f2fs
fat
freevxfs
fscache
fuse
gfs2
hfs
hfsplus
hostfs
hpfs
hugetlbfs
isofs
jbd2
jffs2
jfs
kernfs
lockd
minix
ncpfs
nfs
nfs_common
nfsd
nilfs2
nls
notify
ntfs
ocfs2
omfs
openpromfs
orangefs
overlayfs
proc
pstore
qnx4
qnx6
quota
ramfs
reiserfs
romfs
squashfs
sysfs
sysv
tracefs
ubifs
udf
ufs
xfs
Kconfig -rw-r--r-- 7.1 KB
Kconfig.binfmt -rw-r--r-- 7.2 KB
Makefile -rw-r--r-- 4.2 KB
aio.c -rw-r--r-- 45.8 KB
anon_inodes.c -rw-r--r-- 4.9 KB
attr.c -rw-r--r-- 9.1 KB
bad_inode.c -rw-r--r-- 5.3 KB
binfmt_aout.c -rw-r--r-- 10.7 KB
binfmt_elf.c -rw-r--r-- 60.9 KB
binfmt_elf_fdpic.c -rw-r--r-- 46.9 KB
binfmt_em86.c -rw-r--r-- 2.8 KB
binfmt_flat.c -rw-r--r-- 27.8 KB
binfmt_misc.c -rw-r--r-- 18.3 KB
binfmt_script.c -rw-r--r-- 3.0 KB
block_dev.c -rw-r--r-- 55.2 KB
buffer.c -rw-r--r-- 91.4 KB
char_dev.c -rw-r--r-- 13.5 KB
compat.c -rw-r--r-- 35.3 KB
compat_binfmt_elf.c -rw-r--r-- 3.7 KB
compat_ioctl.c -rw-r--r-- 45.8 KB
coredump.c -rw-r--r-- 20.7 KB
dax.c -rw-r--r-- 37.5 KB
dcache.c -rw-r--r-- 93.8 KB
dcookies.c -rw-r--r-- 6.9 KB
direct-io.c -rw-r--r-- 38.3 KB
drop_caches.c -rw-r--r-- 1.6 KB
eventfd.c -rw-r--r-- 12.9 KB
eventpoll.c -rw-r--r-- 60.1 KB
exec.c -rw-r--r-- 44.4 KB
fcntl.c -rw-r--r-- 16.7 KB
fhandle.c -rw-r--r-- 6.5 KB
file.c -rw-r--r-- 23.6 KB
file_table.c -rw-r--r-- 8.5 KB
filesystems.c -rw-r--r-- 6.4 KB
fs-writeback.c -rw-r--r-- 70.4 KB
fs_pin.c -rw-r--r-- 2.0 KB
fs_struct.c -rw-r--r-- 3.3 KB
inode.c -rw-r--r-- 55.0 KB
internal.h -rw-r--r-- 4.7 KB
ioctl.c -rw-r--r-- 17.2 KB
iomap.c -rw-r--r-- 22.7 KB
libfs.c -rw-r--r-- 30.4 KB
locks.c -rw-r--r-- 73.3 KB
mbcache.c -rw-r--r-- 11.9 KB
mount.h -rw-r--r-- 3.8 KB
mpage.c -rw-r--r-- 20.5 KB
namei.c -rw-r--r-- 119.6 KB
namespace.c -rw-r--r-- 84.0 KB
no-block.c -rw-r--r-- 688 bytes
nsfs.c -rw-r--r-- 5.1 KB
open.c -rw-r--r-- 27.6 KB
pipe.c -rw-r--r-- 27.3 KB
pnode.c -rw-r--r-- 11.3 KB
pnode.h -rw-r--r-- 1.9 KB
posix_acl.c -rw-r--r-- 21.4 KB
proc_namespace.c -rw-r--r-- 7.8 KB
read_write.c -rw-r--r-- 45.8 KB
readdir.c -rw-r--r-- 7.3 KB
select.c -rw-r--r-- 25.7 KB
seq_file.c -rw-r--r-- 23.1 KB
signalfd.c -rw-r--r-- 9.2 KB
splice.c -rw-r--r-- 39.9 KB
stack.c -rw-r--r-- 2.5 KB
stat.c -rw-r--r-- 11.9 KB
statfs.c -rw-r--r-- 5.3 KB
super.c -rw-r--r-- 37.8 KB
sync.c -rw-r--r-- 9.9 KB
timerfd.c -rw-r--r-- 13.1 KB
userfaultfd.c -rw-r--r-- 35.3 KB
utimes.c -rw-r--r-- 5.6 KB
xattr.c -rw-r--r-- 23.5 KB

back to top