Revision ce85cfbed6fe3dbc01bd1976b23ac3e97878cde6 authored by Benjamin Coddington on 21 April 2015, 18:17:35 UTC, committed by Trond Myklebust on 23 April 2015, 19:16:15 UTC
If a READDIR reply comes back without any page data, avoid a NULL pointer
dereference in xdr_copy_to_scratch().

BUG: unable to handle kernel NULL pointer dereference at 0000000000000001
IP: [<ffffffff813a378d>] memcpy+0xd/0x110
...
Call Trace:
	? xdr_inline_decode+0x7a/0xb0 [sunrpc]
	nfs3_decode_dirent+0x73/0x320 [nfsv3]
	nfs_readdir_page_filler+0xd5/0x4e0 [nfs]
	? nfs3_rpc_wrapper.constprop.9+0x42/0xc0 [nfsv3]
	nfs_readdir_xdr_to_array+0x1fa/0x330 [nfs]
	? mem_cgroup_commit_charge+0xac/0x160
	? nfs_readdir_xdr_to_array+0x330/0x330 [nfs]
	nfs_readdir_filler+0x22/0x90 [nfs]
	do_read_cache_page+0x7e/0x1a0
	read_cache_page+0x1c/0x20
	nfs_readdir+0x18e/0x660 [nfs]
	? nfs3_xdr_dec_getattr3res+0x80/0x80 [nfsv3]
	iterate_dir+0x97/0x130
	SyS_getdents+0x94/0x120
	? fillonedir+0xd0/0xd0
	system_call_fastpath+0x12/0x17

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
1 parent 3708f84
History
File Mode Size
kasan
Kconfig -rw-r--r-- 21.2 KB
Kconfig.debug -rw-r--r-- 1.2 KB
Makefile -rw-r--r-- 2.5 KB
backing-dev.c -rw-r--r-- 15.4 KB
balloon_compaction.c -rw-r--r-- 6.8 KB
bootmem.c -rw-r--r-- 20.8 KB
cleancache.c -rw-r--r-- 12.7 KB
cma.c -rw-r--r-- 11.9 KB
compaction.c -rw-r--r-- 46.6 KB
debug-pagealloc.c -rw-r--r-- 2.6 KB
debug.c -rw-r--r-- 6.5 KB
dmapool.c -rw-r--r-- 13.7 KB
early_ioremap.c -rw-r--r-- 5.4 KB
fadvise.c -rw-r--r-- 3.7 KB
failslab.c -rw-r--r-- 1.3 KB
filemap.c -rw-r--r-- 70.5 KB
frontswap.c -rw-r--r-- 13.4 KB
gup.c -rw-r--r-- 35.6 KB
highmem.c -rw-r--r-- 11.8 KB
huge_memory.c -rw-r--r-- 78.1 KB
hugetlb.c -rw-r--r-- 100.0 KB
hugetlb_cgroup.c -rw-r--r-- 10.4 KB
hwpoison-inject.c -rw-r--r-- 3.3 KB
init-mm.c -rw-r--r-- 619 bytes
internal.h -rw-r--r-- 13.5 KB
interval_tree.c -rw-r--r-- 3.1 KB
iov_iter.c -rw-r--r-- 17.5 KB
kmemcheck.c -rw-r--r-- 2.9 KB
kmemleak-test.c -rw-r--r-- 3.2 KB
kmemleak.c -rw-r--r-- 53.3 KB
ksm.c -rw-r--r-- 63.3 KB
list_lru.c -rw-r--r-- 12.2 KB
maccess.c -rw-r--r-- 1.6 KB
madvise.c -rw-r--r-- 13.8 KB
memblock.c -rw-r--r-- 44.6 KB
memcontrol.c -rw-r--r-- 149.7 KB
memory-failure.c -rw-r--r-- 47.6 KB
memory.c -rw-r--r-- 100.2 KB
memory_hotplug.c -rw-r--r-- 51.4 KB
mempolicy.c -rw-r--r-- 70.4 KB
mempool.c -rw-r--r-- 10.7 KB
migrate.c -rw-r--r-- 47.1 KB
mincore.c -rw-r--r-- 6.6 KB
mlock.c -rw-r--r-- 22.8 KB
mm_init.c -rw-r--r-- 5.1 KB
mmap.c -rw-r--r-- 89.9 KB
mmu_context.c -rw-r--r-- 1.3 KB
mmu_notifier.c -rw-r--r-- 11.4 KB
mmzone.c -rw-r--r-- 2.3 KB
mprotect.c -rw-r--r-- 10.4 KB
mremap.c -rw-r--r-- 15.1 KB
msync.c -rw-r--r-- 2.6 KB
nobootmem.c -rw-r--r-- 10.7 KB
nommu.c -rw-r--r-- 53.6 KB
oom_kill.c -rw-r--r-- 23.1 KB
page-writeback.c -rw-r--r-- 73.5 KB
page_alloc.c -rw-r--r-- 182.2 KB
page_counter.c -rw-r--r-- 4.8 KB
page_ext.c -rw-r--r-- 10.3 KB
page_io.c -rw-r--r-- 9.4 KB
page_isolation.c -rw-r--r-- 8.6 KB
page_owner.c -rw-r--r-- 7.0 KB
pagewalk.c -rw-r--r-- 7.4 KB
percpu-km.c -rw-r--r-- 2.8 KB
percpu-vm.c -rw-r--r-- 10.0 KB
percpu.c -rw-r--r-- 66.1 KB
pgtable-generic.c -rw-r--r-- 5.1 KB
process_vm_access.c -rw-r--r-- 10.1 KB
quicklist.c -rw-r--r-- 2.4 KB
readahead.c -rw-r--r-- 15.6 KB
rmap.c -rw-r--r-- 43.2 KB
shmem.c -rw-r--r-- 89.2 KB
slab.c -rw-r--r-- 106.6 KB
slab.h -rw-r--r-- 10.4 KB
slab_common.c -rw-r--r-- 26.9 KB
slob.c -rw-r--r-- 15.7 KB
slub.c -rw-r--r-- 127.3 KB
sparse-vmemmap.c -rw-r--r-- 6.0 KB
sparse.c -rw-r--r-- 20.9 KB
swap.c -rw-r--r-- 31.7 KB
swap_cgroup.c -rw-r--r-- 4.6 KB
swap_state.c -rw-r--r-- 12.7 KB
swapfile.c -rw-r--r-- 77.0 KB
truncate.c -rw-r--r-- 24.4 KB
util.c -rw-r--r-- 10.2 KB
vmacache.c -rw-r--r-- 3.1 KB
vmalloc.c -rw-r--r-- 68.2 KB
vmpressure.c -rw-r--r-- 11.4 KB
vmscan.c -rw-r--r-- 109.1 KB
vmstat.c -rw-r--r-- 40.7 KB
workingset.c -rw-r--r-- 13.6 KB
zbud.c -rw-r--r-- 17.9 KB
zpool.c -rw-r--r-- 9.6 KB
zsmalloc.c -rw-r--r-- 36.5 KB
zswap.c -rw-r--r-- 24.9 KB

back to top